Find Latest Group of Size M LeetCode solution in C++

1
class Solution {
2
public:
3
int findLatestStep(vector<int> &arr, int m) {
4
int n = size(arr), ans = -1;
5
vector<int> cntL(n + 2), indL(n + 2);
6
for (int i = 0; i < n; i++) {
7
int li = indL[arr[i] - 1], ri = indL[arr[i] + 1], nl = li + ri + 1;
8
indL[arr[i]] = nl;
9
indL[arr[i] - li] = nl;
10
indL[arr[i] + ri] = nl;
11
cntL[li]--;
12
cntL[ri]--;
13
cntL[nl]++;
14
if (cntL[m] > 0) ans = i + 1;
15
}
16
return ans;
17
}
18
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0