Skip to content

DP Jump Game

Table of Contents

1306. Jump Game III

  • LeetCode | 力扣

  • Tags: Array, Depth First Search, Breadth First Search

from collections import deque
from typing import List


# BFS
def canReach(arr: List[int], start: int) -> bool:
    n = len(arr)
    visited = [False for _ in range(n)]
    q = deque([start])

    while q:
        i = q.popleft()

        if arr[i] == 0:
            return True

        visited[i] = True

        for j in [i - arr[i], i + arr[i]]:
            if j in range(n) and not visited[j]:
                q.append(j)

    return False


arr = [4, 2, 3, 0, 3, 1, 2]
start = 5
print(canReach(arr, start))  # True

2770. Maximum Number of Jumps to Reach the Last Index

403. Frog Jump

1340. Jump Game V

1871. Jump Game VII

  • LeetCode | 力扣

  • Tags: String, Dynamic Programming, Sliding Window, Prefix Sum

1696. Jump Game VI

  • LeetCode | 力扣

  • Tags: Array, Dynamic Programming, Queue, Heap Priority Queue, Monotonic Queue

975. Odd Even Jump

  • LeetCode | 力扣

  • Tags: Array, Dynamic Programming, Stack, Monotonic Stack, Ordered Set

1654. Minimum Jumps to Reach Home

  • LeetCode | 力扣

  • Tags: Array, Dynamic Programming, Breadth First Search

656. Coin Path 👑

2297. Jump Game VIII 👑

  • LeetCode | 力扣

  • Tags: Array, Dynamic Programming, Stack, Graph, Monotonic Stack, Shortest Path