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 2022-10-14 14:25  老菜农  阅读(12)  评论(0编辑  收藏  举报

导航