class Solution {
public int jump(int[] nums) {
if(nums.length == 1) return 0;
int cover = nums[0];
int step = 0;
int max = 0;
int index = 0;
while(cover < nums.length - 1){
int len = cover;
for(int i = index; i <= len; i++){
if(cover < i + nums[i]){
cover = i + nums[i];
index = i;
}
}
step++;
}
return ++step;
}
}
思路就是每一步都选可以跳得最远的,记录下标index以及覆盖范围cover,进入下一个while循环,下个循环从index开始到cover结束。