外贸 网站设计公司,小店怎么做网站,织梦网站备份几种方法,智慧团建学生登录入口官网题目#xff1a; 给定一个非负整数数组 nums #xff0c;你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 来源#xff1a;力扣#xff08;LeetCode#xff09; 链接#xff1a;力扣 示例#xf… 题目 给定一个非负整数数组 nums 你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 来源力扣LeetCode 链接力扣 示例 示例 1 输入nums [2,3,1,1,4] 输出true 解释可以先跳 1 步从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。 示例 2 输入nums [3,2,1,0,4] 输出false 解释无论怎样总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 所以永远不可能到达最后一个下标。 解法 使用贪心如果跳到的点的值为0说明不能再前进则返回false否则返回true。贪心规则为设当前值为now说明可以向后跳1~now格在可以跳到的区域内遍历值设为num同时记录跳到每格的距离设为index2numindex2表示从当前位置跳1次可以探索到的空间此空间越大越好因为同样是花费1次跳跃可以探索到的空间越大就越早能到达终点。 代码 class Solution:def canJump(self, nums: List[int]) - bool:index 0while 1:now nums[index]if index now len(nums) - 1:return Trueif now 0:return Falsecurrent index1 0for index2, num in enumerate(nums[index 1:index 1 now]):if index2 num current:current index2 numindex1 index2index index1 1