1.题目
2.思路
尽可能到达最远位置(贪心)。
如果能到达某个位置,那一定能到达它前面的所有位置。
方法:初始化最远位置为 0,然后遍历数组,如果当前位置能到达,并且当前位置+跳数>最远位置,就更新最远位置。最后比较最远位置和数组长度。
3.代码
class Solution:
def canJump(self, nums: List[int]) -> bool:
Max = 0 # 初始化当前能到达最远的位置
for i, Jump in enumerate(nums):# i为当前位置,jump为当前位置的跳数
if Max >= i and i + Jump > Max:
# 如果当前位置能到达,且当前位置+跳数>最远位置
Max = i + Jump #
return Max >=