Jump Game IV LeetCode solution in Python

1
from collections import deque
2

3

4
class Solution:
5
def minJumps(self, arr: List[int]) -> int:
6
minSteps = 0
7
queue = deque()
8
queue.append(0)
9
n = len(arr)
10
visited = set()
11
visited.add(0)
12

13
d = {i: [] for i in arr}
14

15
for i, val in enumerate(arr):
16
d[val].append(i)
17

18
while queue:
19
for _ in range(len(queue)):
20
idx = queue.popleft()
21
if idx == n - 1:
22
return minSteps
23

24
for i in [*d[arr[idx]], idx - 1, idx + 1]:
25
if i not in visited and 0 <= i < n:
26
visited.add(i)
27
queue.append(i)
28
d[arr[idx]].clear()
29
minSteps += 1

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0