自己写出个困难的题(虽然感觉也不困难),真是内牛满面
解题思路
贪心算法,每次都走最长的距离,然后看在当前这一个的下一个与它能够到达最远的那个之间,哪个点能够到达最远距离,记录该坐标。
依次类推,直至到达终点,>=length-1即可。
java代码(9ms)
class Solution {
public int jump(int[] nums) {
int count = 0;
int idx = 0;
while(idx < nums.length-1 ){
int max = 0;
count++;
if(nums[idx]+idx >= nums.length-1 )
return count;
int r = Math.min(nums[idx]+idx,nums.length-1);
for( int i = idx+1;i <= r;i++){
if(max <= nums[i]+i){
max = nums[i]+i;
idx = i;
}
}
}
return count;
}
}