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