Leetcode 1428 Solution

This article provides solution to leetcode question 1428 (jump-game-iii)

https://leetcode.com/problems/jump-game-iii

Solution

class Solution: def canReach(self, arr: List[int], start: int) -> bool: q = collections.deque() q.append(start) left = set(range(len(arr))) left.remove(start)
while q: i = q.popleft()
if arr[i] == 0: return True
if i - arr[i] in left: q.append(i - arr[i]) left.remove(i - arr[i])
if i + arr[i] in left: q.append(i + arr[i]) left.remove(i + arr[i])
return False