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系列
记录当前覆盖最远距离和下一次覆盖最远距离,当前距离最远时,增加一步到下一次最远距离
时间复杂度:O() 空间复杂度:O()
动态规划
时间复杂度:O() 空间复杂度:O()
bfs
dfs
超时
Last updated