提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
题目列表
【第1题】跳跃游戏
LeetCode地址:https://leetcode.cn/problems/jump-game/
1.题目描述
2.解题思路
我们从左到右,依次计算每个位置的最大可达位置:i+nums[i],并使用r_max保存[0,…,i]上的最大可达位置。当挪动到下一个位置时,先判断当前位置是否可达(index < r_max ?),如果可达,更新r_max的值。最后如果出现r_max>=n-1(最后一个位置可达)的情况,返回true。
3.代码详解
class Solution {
public boolean canJump(int[] nums) {
int r_max = nums[0];//[0,...,index]上的最大可达路径值
for(int i = 0; i < nums.length; i++){
if(i <= r_max){//如果r_max>i,则i点是不可达的
r_max = Math.max(r_max,i+nums[i]);
if(r_max >= nums.length - 1){
return true;
}
}else{
break;//存在不可达的点直接跳出循环
}
}
return false;
}
}