题目:给定数组,array[i]=k,表示从位置i向右跳K个距离
jump:表示目前跳了多少步
cur:表示如果只能跳jump步,他能达到的最远距离
next:代表如果再多跳一步,能够达到的最远距离
public static void main(String[] args) {
int[] array={2,3,1,1,4};
System.out.println(min(array));
}
public static int min(int[] array){
if(array==null ||array.length<1){
return -1;
}
int jump=0;
int cur=0;
int next=0;
for(int i=0;i<array.length;i++){
if(cur<i){
jump++;
cur=next;
}
next=Math.max(next, i+array[i]);
}
return jump;
}