55. 跳跃游戏 经典贪心 45. 跳跃游戏 II

55. 跳跃游戏

  1. class Solution:
  2.     def canJump(self, nums: List[int]) -> bool:
  3.         if len(nums)==1:
  4.             return True
  5.         cover=0
  6.         i=0
  7.         while i<=cover:
  8.             cover=max(cover,nums[i]+i)
  9.             if cover>=len(nums)-1:
  10.                 return True
  11.             i+=1
  12.         return False

求覆盖范围

  1. class Solution:
  2.     def jump(self, nums: List[int]) -> int:
  3.         if len(nums)==1:
  4.             return 0
  5.         res=0
  6.         cur=0
  7.         ne=0
  8.         for i in range(len(nums)):
  9.             ne=max(ne,nums[i]+i)
  10.             if i==cur:
  11.                 res+=1
  12.                 cur=ne
  13.                 if ne>=len(nums)-1:
  14.                     return res

当前要走,接下来要走

发表评论