55. Jump Game

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

solution

class Solution:
    def canJump(self, nums: List[int]) -> bool:
        if not nums:
            return False
        if len(nums) == 1:
            return True

        i = 0
        res = 0  # 目前能覆盖的最大范围

        while i <= res:  # 注意是 <=
            res = max(res, i + nums[i])
            if res >= len(nums) - 1:
                return True
            i += 1

        return False

时间复杂度:O(n) 空间复杂度:O(1)

follow up-jump game系列

45 Jump Game II

  • 记录当前覆盖最远距离和下一次覆盖最远距离,当前距离最远时,增加一步到下一次最远距离

时间复杂度:O() 空间复杂度:O()

  • 动态规划

时间复杂度:O() 空间复杂度:O()

1306. Jump Game III

  • bfs

  • dfs

1345. Jump Game IV

1340. Jump Game V

1696. Jump Game VI

1871. Jump Game VII

  • 超时

*2297. Jump Game VIII

Last updated