Count Number of Teams LeetCode solution in Java

1
// Smaller * Larger Solution
2
// sum of #smaller * #larger
3
// Time complexity: O(N^2)
4
// Space complexity: O(1)
5
class Solution {
6
public int numTeams(int[] rating) {
7
final int N = rating.length;
8
int res = 0;
9
for (int i = 1; i < N; i++) {
10
res += smaller(rating, i, -1) * larger(rating, i, 1);
11
res += larger(rating, i, -1) * smaller(rating, i, 1);
12
}
13
return res;
14
}
15

16
private int smaller(int[] rating, int i, int diff) {
17
int t = rating[i], count = 0;
18
i += diff;
19
while (i >= 0 && i < rating.length) {
20
if (rating[i] < t) count++;
21
i += diff;
22
}
23
return count;
24
}
25

26
private int larger(int[] rating, int i, int diff) {
27
int t = rating[i], count = 0;
28
i += diff;
29
while (i >= 0 && i < rating.length) {
30
if (rating[i] > t) count++;
31
i += diff;
32
}
33
return count;
34
}
35
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0