[Java][Leetcode middle] 45. 跳跃游戏 II
这题没做出来,看的答案解析
可以理解为希望采用最少得跳槽次数跳到最高级别的公司。
下标i为公司本身的职级,每个公司可以提供本身等级+nums[i]的职级提升。
每次从这些选择中选择自己能够达到最大职级的公司跳槽。
public int jump(int[] nums) {if(nums.length <= 1){return 0;}int jump = 0;int maxUnlock = 0; // 在某家公司人任职后:能提升到的最大职级int curUnlock = 0; // 当前能跳槽到哪个职级的公司for(int i = 0 ; i < nums.length-1; i++){// 下标i表示公司的职级,nums[i]表示该公司能给提升的职级。maxUnlock = Math.max(maxUnlock, i + nums[i]);if(i==curUnlock){ // 本次能够跳槽的机会全都选择完毕了,从这些选择中选择自己能够达到最大职级的公司跳槽。curUnlock = maxUnlock;jump++;}}return jump;}