class Solution:
def canJump(self, nums: List[int]) -> bool:
# 如果nums内不存在0一定会到达最终点因为最小移动为1
# 如果nums长度为一 开始即满足题目要求
if 0 not in nums or len(nums)==1:
return True
# 如果nums长度不为一 且初始位置处无法移动
elif nums[0] == 0:
return False
# 最大移动距离
max_dis = 0
# index代表当前下标 value指可移动最大距离
for index, value in enumerate(nums):
# 当前下标位置可到达 当前下标位置处最大距离比记录远
if max_dis >= index and nums[index]+index > max_dis:
# 进行更新最大距离
max_dis = nums[index]+index
# 当前下标处无法到达
elif max_dis < index:
break
# 如果最大距离大于nums最后下标 则代表可以移动到最后一位
return max_dis>=len(nums)-1
Leetcode:55. 跳跃游戏(python3)
最新推荐文章于 2024-10-03 23:42:25 发布