import java.io.*;
/**
* Welcome to vivo !
*/
public class jump_game_ii {
public static int jump(int[] nums) {
int end = 0;
int steps = 0;
int max = 0;
for(int i=0; i<nums.length-1; i++) {
max = Math.max(max, nums[i]+i);//取最大跳
if(end == i) {//走到最大跳的地方了
end = max;// 如果跳到max的位置,就说明该位置
steps++;
}
}
System.out.println(max);
if(max < nums.length-1)//如果最后走完了,可以到达的最大的地方还不够nums的长度,这里注意,因为最开始的地方把0也算作一跳,所以后面的是长度减1
return -1;
return steps;
}
public static void main(String[] args) throws Exception {
int nums[] = new int[]{2,3,1,1,4};
System.out.println(jump(nums));
}
}
贪心,有点像力扣的45题,区别是这个可能调不到最后,所以后面有一个比较,这里注意,因为最开始的地方把0也算作一跳,所以后面的是长度减1,这个也不是我想到的,看了题解,加了点东西,可能有疏忽的地方,望看官们指正