Leetcode 毎日の質問: 55. ジャンピング ゲーム

シリーズ: 貪欲アルゴリズム
言語: Java
タイトル出典: Leetcode55. Jumping Game

トピック

負でない整数の配列 nums を指定すると、最初は配列の最初のインデックスにいます。
配列内の各要素は、その位置でジャンプできる最大の長さを表します。
最後の添え字に到達できるかどうかを判断します。

例 1:

入力: nums = [2,3,1,1,4]
出力: true
説明: 最初に添字 0 から添字 1 に 1 ステップジャンプし、次に添字 1 から最後の添字に 3 ステップジャンプできます。

例 2:

入力: nums = [3,2,1,0,4]
出力: false
説明: 何があっても、添字 3 の位置には常に到達します。ただし、この添え字の最大ジャンプ長は 0 であるため、最後の添え字に到達することはできません。

制限:

1 <= nums.length <= 3 * 104
0 <= nums[i] <= 105

アイデア:

貪欲な考え方:最も大きな値の範囲を順番に見つけ(最初を基準点として最初から最後まで測定し、インデックスと値は開始位置から数えた範囲を表します)、次に最大値を見つけます割り当て後の値。

class Solution {
    
    
    public boolean canJump(int[] nums) {
    
    
        if(nums.length ==1){
    
    
            return true;
        }
        int cov = 0;
        //遍历寻找最大范围
        for(int i =0;i<=cov;i++){
    
    
            cov = Math.max(cov,i+nums[i]);
            if(cov>=nums.length-1){
    
    
                return true;
            }
        }
        return false;
    }
}

私に従ってください、毎日のアルゴリズムの自己規律チェックインを完了してください。開始するのに遅すぎることはありません! !

おすすめ

転載: blog.csdn.net/weixin_54174102/article/details/129694745