最小跳跃数

       给定一个非负整数数组,初始情况位于数组的第一个索引处。数组中的每个元素表示该位置的最大跳跃长度。要求达到最后一个索引花费的最小跳跃次数。

<举例>

输入: [2,3,1,1,4]
输出: 2

解释: 跳到最后一个索引的最小跳数为2。从索引0跳到1跳1步,然后跳3步到最后一个索引。

public static int canJump(int[] a) {
         int cur=0,far=0,step=0;
         far=a[0];
         while(cur=a.length-1)
                 return step+1;
             int nextstep=cur,temp=far;
             while(cur<=temp){
                 if(a[cur]+cur>far){
                     nextstep=cur;
                     far=a[cur]+cur;
                 }
                 cur++;
             }
             step++;
             cur=nextstep;

         }
        return -1;
    }

你可能感兴趣的:(最小跳跃数)