首页 > 其他 > 详细

LeetCode Jump Game II

时间:2015-09-24 07:02:31      阅读:256      评论:0      收藏:0      [点我收藏+]

原题链接在这里: https://leetcode.com/problems/jump-game-ii/

这是的Jump Game进阶版题目。求能跳到最后一个元素的最小步数。

采用了Jump Game中的Method 2. maxJump是维护的当前能跳到的最大位置,maxReach是指从之前的点能reach到得最远位置。

当i 大于之前点能碰到的最大位置时,就需要跳一步,并把maxReach更新为maxJump.

最后返回若是maxJump能到最后一个元素,就返回step, 若是到不了,就说明根本走不到最后一步,返回0.

AC Java:

 1 public class Solution {
 2     public int jump(int[] nums) {
 3         if(nums == null || nums.length == 0){
 4             return 0;
 5         }
 6         int maxJump = 0;
 7         int maxReach = 0;
 8         int step = 0;
 9         for(int i = 0; i< nums.length && i<=maxJump; i++){
10             if(i>maxReach){
11                 step++;
12                 maxReach = maxJump;
13             }
14             maxJump = Math.max(maxJump, nums[i] + i);
15         }
16         return maxJump<nums.length-1 ? 0:step;
17     }
18 }

 

LeetCode Jump Game II

原文:http://www.cnblogs.com/Dylan-Java-NYC/p/4834079.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!