题目:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
与Ⅰ不同的是,这次要求找出最小的跳跃次数。思路也很简单,在每一次跳跃之后都更新最远的跳跃距离。
举个列子:
输入:2,3,1,1,4
第一次跳跃时,最远跳到下标为2的位置,那么在2,3,1之间寻找能够跳跃的最远距离,不断更新,更新为4
第二次跳跃即从下标为1的位置开始跳跃,直接跳到终点终点。
public int jump(int[] nums) {int k=0,sum=0,m=0;for(int i=0;i+1<nums.length;i++){k=Math.max(k,i+nums[i]);if(i==m){sum++;m=k;}}return sum;}