leetcode-55. 跳跃游戏

每一次起跳看看能否到达下一位置

  • 设置k为每次起跳最远能到哪里

  • 循环遍历,i为当前所在格子,每次判断一下k能否达到当前格子

  • 每次循环维护k,k一直为能最远跳到的距离,取上次k当前格子+当前能跳到最远的距离的最大值。

public boolean canJump(int[] nums) {
int k = 0; //跳完最远能到那
for(int i = 0; i < nums.length; i++){
if(i > k){
return false;//如果当前的位置超过了跳完最远的位置,直接返回false
}
k = Math.max(k, i + nums[i]); //维护跳完最远的距离,取(上一次最远能到的距离,现在所在的位置+能跳的距离也就是这一次能跳到的位置)的最大值
}
return true;
}

 

posted on   老菜农  阅读(13)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

导航

统计信息

点击右上角即可分享
微信分享提示