您的位置:首页 > 新闻 > 会展 > 55.跳跃游戏

55.跳跃游戏

2025/10/19 21:31:51 来源:https://blog.csdn.net/argcargv/article/details/141038693  浏览:    关键词:55.跳跃游戏

给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。

方法一:

复杂度:n * n    1

class Solution {public boolean canJump(int[] nums) {int idx = nums.length -1;// 标记最后一个位置numsMark[idx] = -1;while(idx != 0){// 从最后一个位置,依次向前判断每个节点是否能到达。// 能到达就标记出来,再向前判断。就可以判断是否能到达标记过的节点isNext(nums, idx-1);idx--;}if(nums[0] != -1) return false;else return true;}public void isNext(int[] nums, int idx){for(int i = idx; i <= idx + nums[idx]; i++){if(nums[i] == -1) {nums[idx] = -1;return;}}}
}

方法二:

复杂度:n   1

public boolean canJump(int[] nums){// range 可达的最大范围int range = 0;// 依次前向移动,更新最大移动范围for(int i = 0; i <= range; i++){if(range >= nums.length) return true;range = Math.max(range, i + nums[i]);}return false;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com