Skip to content

Commit 8255bae

Browse files
committed
feat: add solutions to lc problem: No.1395
No.1395.Count Number of Teams
1 parent ab4b3e9 commit 8255bae

File tree

6 files changed

+287
-2
lines changed

6 files changed

+287
-2
lines changed

solution/1300-1399/1395.Count Number of Teams/README.md

Lines changed: 100 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,22 +57,121 @@
5757

5858
<!-- 这里可写通用的实现逻辑 -->
5959

60+
外层循环枚举中间节点,内层循环各枚举左右节点,统计个数。
61+
6062
<!-- tabs:start -->
6163

6264
### **Python3**
6365

6466
<!-- 这里可写当前语言的特殊实现逻辑 -->
6567

6668
```python
67-
69+
class Solution:
70+
def numTeams(self, rating: List[int]) -> int:
71+
n, ans = len(rating), 0
72+
for j in range(1, n - 1):
73+
ia = ib = ka = kb = 0
74+
for i in range(j):
75+
if rating[i] < rating[j]:
76+
ia += 1
77+
elif rating[i] > rating[j]:
78+
ib += 1
79+
for k in range(j + 1, n):
80+
if rating[j] < rating[k]:
81+
ka += 1
82+
elif rating[j] > rating[k]:
83+
kb += 1
84+
ans += ia * ka + ib * kb
85+
return ans
6886
```
6987

7088
### **Java**
7189

7290
<!-- 这里可写当前语言的特殊实现逻辑 -->
7391

7492
```java
93+
class Solution {
94+
public int numTeams(int[] rating) {
95+
int n = rating.length;
96+
int ans = 0;
97+
for (int j = 1; j < n - 1; ++j) {
98+
int ia = 0;
99+
int ib = 0;
100+
int ka = 0;
101+
int kb = 0;
102+
for (int i = 0; i < j; ++i) {
103+
if (rating[i] < rating[j]) {
104+
++ia;
105+
} else if (rating[i] > rating[j]) {
106+
++ib;
107+
}
108+
}
109+
for (int k = j + 1; k < n; ++k) {
110+
if (rating[j] < rating[k]) {
111+
++ka;
112+
} else if (rating[j] > rating[k]) {
113+
++kb;
114+
}
115+
}
116+
ans += ia * ka + ib * kb;
117+
}
118+
return ans;
119+
}
120+
}
121+
```
122+
123+
### **C++**
124+
125+
```cpp
126+
class Solution {
127+
public:
128+
int numTeams(vector<int>& rating) {
129+
int n = rating.size(), ans = 0;
130+
for (int j = 1; j < n - 1; ++j)
131+
{
132+
int ia = 0, ib = 0, ka = 0, kb = 0;
133+
for (int i = 0; i < j; ++i)
134+
{
135+
if (rating[i] < rating[j]) ++ia;
136+
else if (rating[i] > rating[j]) ++ib;
137+
}
138+
for (int k = j + 1; k < n; ++k)
139+
{
140+
if (rating[j] < rating[k]) ++ka;
141+
else if (rating[j] > rating[k]) ++kb;
142+
}
143+
ans += ia * ka + ib * kb;
144+
}
145+
return ans;
146+
}
147+
};
148+
```
75149
150+
### **Go**
151+
152+
```go
153+
func numTeams(rating []int) int {
154+
n, ans := len(rating), 0
155+
for j := 1; j < n-1; j++ {
156+
ia, ib, ka, kb := 0, 0, 0, 0
157+
for i := 0; i < j; i++ {
158+
if rating[i] < rating[j] {
159+
ia++
160+
} else if rating[i] > rating[j] {
161+
ib++
162+
}
163+
}
164+
for k := j + 1; k < n; k++ {
165+
if rating[j] < rating[k] {
166+
ka++
167+
} else if rating[j] > rating[k] {
168+
kb++
169+
}
170+
}
171+
ans += ia*ka + ib*kb
172+
}
173+
return ans
174+
}
76175
```
77176

78177
### **...**

solution/1300-1399/1395.Count Number of Teams/README_EN.md

Lines changed: 98 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,110 @@
5656
### **Python3**
5757

5858
```python
59-
59+
class Solution:
60+
def numTeams(self, rating: List[int]) -> int:
61+
n, ans = len(rating), 0
62+
for j in range(1, n - 1):
63+
ia = ib = ka = kb = 0
64+
for i in range(j):
65+
if rating[i] < rating[j]:
66+
ia += 1
67+
elif rating[i] > rating[j]:
68+
ib += 1
69+
for k in range(j + 1, n):
70+
if rating[j] < rating[k]:
71+
ka += 1
72+
elif rating[j] > rating[k]:
73+
kb += 1
74+
ans += ia * ka + ib * kb
75+
return ans
6076
```
6177

6278
### **Java**
6379

6480
```java
81+
class Solution {
82+
public int numTeams(int[] rating) {
83+
int n = rating.length;
84+
int ans = 0;
85+
for (int j = 1; j < n - 1; ++j) {
86+
int ia = 0;
87+
int ib = 0;
88+
int ka = 0;
89+
int kb = 0;
90+
for (int i = 0; i < j; ++i) {
91+
if (rating[i] < rating[j]) {
92+
++ia;
93+
} else if (rating[i] > rating[j]) {
94+
++ib;
95+
}
96+
}
97+
for (int k = j + 1; k < n; ++k) {
98+
if (rating[j] < rating[k]) {
99+
++ka;
100+
} else if (rating[j] > rating[k]) {
101+
++kb;
102+
}
103+
}
104+
ans += ia * ka + ib * kb;
105+
}
106+
return ans;
107+
}
108+
}
109+
```
110+
111+
### **C++**
112+
113+
```cpp
114+
class Solution {
115+
public:
116+
int numTeams(vector<int>& rating) {
117+
int n = rating.size(), ans = 0;
118+
for (int j = 1; j < n - 1; ++j)
119+
{
120+
int ia = 0, ib = 0, ka = 0, kb = 0;
121+
for (int i = 0; i < j; ++i)
122+
{
123+
if (rating[i] < rating[j]) ++ia;
124+
else if (rating[i] > rating[j]) ++ib;
125+
}
126+
for (int k = j + 1; k < n; ++k)
127+
{
128+
if (rating[j] < rating[k]) ++ka;
129+
else if (rating[j] > rating[k]) ++kb;
130+
}
131+
ans += ia * ka + ib * kb;
132+
}
133+
return ans;
134+
}
135+
};
136+
```
65137
138+
### **Go**
139+
140+
```go
141+
func numTeams(rating []int) int {
142+
n, ans := len(rating), 0
143+
for j := 1; j < n-1; j++ {
144+
ia, ib, ka, kb := 0, 0, 0, 0
145+
for i := 0; i < j; i++ {
146+
if rating[i] < rating[j] {
147+
ia++
148+
} else if rating[i] > rating[j] {
149+
ib++
150+
}
151+
}
152+
for k := j + 1; k < n; k++ {
153+
if rating[j] < rating[k] {
154+
ka++
155+
} else if rating[j] > rating[k] {
156+
kb++
157+
}
158+
}
159+
ans += ia*ka + ib*kb
160+
}
161+
return ans
162+
}
66163
```
67164

68165
### **...**
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution {
2+
public:
3+
int numTeams(vector<int>& rating) {
4+
int n = rating.size(), ans = 0;
5+
for (int j = 1; j < n - 1; ++j)
6+
{
7+
int ia = 0, ib = 0, ka = 0, kb = 0;
8+
for (int i = 0; i < j; ++i)
9+
{
10+
if (rating[i] < rating[j]) ++ia;
11+
else if (rating[i] > rating[j]) ++ib;
12+
}
13+
for (int k = j + 1; k < n; ++k)
14+
{
15+
if (rating[j] < rating[k]) ++ka;
16+
else if (rating[j] > rating[k]) ++kb;
17+
}
18+
ans += ia * ka + ib * kb;
19+
}
20+
return ans;
21+
}
22+
};
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
func numTeams(rating []int) int {
2+
n, ans := len(rating), 0
3+
for j := 1; j < n-1; j++ {
4+
ia, ib, ka, kb := 0, 0, 0, 0
5+
for i := 0; i < j; i++ {
6+
if rating[i] < rating[j] {
7+
ia++
8+
} else if rating[i] > rating[j] {
9+
ib++
10+
}
11+
}
12+
for k := j + 1; k < n; k++ {
13+
if rating[j] < rating[k] {
14+
ka++
15+
} else if rating[j] > rating[k] {
16+
kb++
17+
}
18+
}
19+
ans += ia*ka + ib*kb
20+
}
21+
return ans
22+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
class Solution {
2+
public int numTeams(int[] rating) {
3+
int n = rating.length;
4+
int ans = 0;
5+
for (int j = 1; j < n - 1; ++j) {
6+
int ia = 0;
7+
int ib = 0;
8+
int ka = 0;
9+
int kb = 0;
10+
for (int i = 0; i < j; ++i) {
11+
if (rating[i] < rating[j]) {
12+
++ia;
13+
} else if (rating[i] > rating[j]) {
14+
++ib;
15+
}
16+
}
17+
for (int k = j + 1; k < n; ++k) {
18+
if (rating[j] < rating[k]) {
19+
++ka;
20+
} else if (rating[j] > rating[k]) {
21+
++kb;
22+
}
23+
}
24+
ans += ia * ka + ib * kb;
25+
}
26+
return ans;
27+
}
28+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Solution:
2+
def numTeams(self, rating: List[int]) -> int:
3+
n, ans = len(rating), 0
4+
for j in range(1, n - 1):
5+
ia = ib = ka = kb = 0
6+
for i in range(j):
7+
if rating[i] < rating[j]:
8+
ia += 1
9+
elif rating[i] > rating[j]:
10+
ib += 1
11+
for k in range(j + 1, n):
12+
if rating[j] < rating[k]:
13+
ka += 1
14+
elif rating[j] > rating[k]:
15+
kb += 1
16+
ans += ia * ka + ib * kb
17+
return ans

0 commit comments

Comments
 (0)