Leetcode 1684 Solution
This article provides solution to leetcode question 1684 (find-latest-group-of-size-m)
Access this page by simply typing in "lcs 1684" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/find-latest-group-of-size-m
Solution
class Solution:
def findLatestStep(self, arr: List[int], m: int) -> int:
n = len(arr)
v = [-1] * n
lens = collections.defaultdict(int)
ans = -1
for j, i in enumerate(arr):
i -= 1
if i > 0 and v[i - 1] != -1:
left = v[i - 1]
lens[i - left] -= 1
else:
left = i
if i < n - 1 and v[i + 1] != -1:
right = v[i + 1]
lens[right - i] -= 1
else:
right = i
v[left] = right
v[right] = left
lens[right - left + 1] += 1
if lens[m] > 0:
ans = max(ans, j)
return ans + 1 if ans != -1 else -1