目录
每日一句
世界上最大的监狱就是人的内心,走不出自己的执念,到哪里都是囚徒
作者简介
🏡个人主页:XiaoChen_Android
📚学习专栏:力扣专栏
🕒发布日期:2022/8/13
『LeetCode|每日一题』跳跃游戏
1.每日一题
2.解题思路
2.1 思路分析
发现关键字最远之后便想到了贪心算法,每次都要他到从他开始最远的位置
S1:定义一个max变量,意义是从i开始最远到达的位置,显而易见,当第0个位置时,max = Math.max(0 , nums[0]);
S2:首先判断不能到达的情况,那么就是max等于0的时候,说明最多只能走0步,所以肯定不能到最后一个下标位置;
S3:接下来遍历数组,能到达最远的位置无非就是max - 1或者nums[i],前者就是基于i - 1的步数能到的最远位置,所以减一,后者就是自己本身具有的步数;
S4:当最远能到的位置大于或者等于nums.length() - 1时,说明可以到达最后下标的位置,返回true
2.2 核心代码
int max = Math.max(0 , nums[0]);
for(int i = 1;i < l;i++){
if(max == 0){
return false;
}
max = Math.max(max - 1 , nums[i]);
}
2.3 全部代码
class Solution {
public boolean canJump(int[] nums) {
int l = nums.length;
int max = Math.max(0 , nums[0]);
for(int i = 1;i < l;i++){
if(max == 0){
return false;
}
max = Math.max(max - 1 , nums[i]);
}
return true;
}
}
2.4 运行结果
🍁 类似题目推荐:
如果文章对你有帮助就支持一下噢,新手尝试,不好的地方请各位大佬多多指教!