7.3
发现贪心的问题都是贵在想法。
这题就是怎么跳无所谓,只要找到最远能跳到哪里去。
其实在整个循环过程中也是一种遍历,即只要当前 i 没有超过cover覆盖的范围,那就试一试i+nums[i]有没有超出cover(如果超出那就说明cover的范围被进一步扩大了)
class Solution:
def canJump(self, nums: List[int]) -> bool:
cover = 0 # 记录最远能够到达的下表
i = 0 # 记录当前所在的下表
while i <= cover:
cover = max(i+nums[i], cover)
if cover >= len(nums)-1: return True
i += 1
return False