シリーズ: 貪欲アルゴリズム
言語: 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;
}
}
私に従ってください、毎日のアルゴリズムの自己規律チェックインを完了してください。開始するのに遅すぎることはありません! !