码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode Jump Game

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

标签:

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

维护一个当前能跳到的最大值maxJump, 若是maxJump 已经>=nums.length-1, 说明能跳到最后一个点,return true.

若是过程中maxJump <= i, 说明跳到当前点便不能往前,跳出loop, return false.

AC Java:

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

 下面的Method 2 更加模板化,方便于Jump Game II的操作。maxJump同样是需要维护的能跳到的最大值,每当 i 大于maxJump时就说明脱节了,

maxJump到不了i 不对maxJump做进一步更新。

loop后面检查maxJump 有没有到 最后一个元素,所示没到,就返回false, 到了就返回 true.

AC Java:

 1 public class Solution {
 2     public boolean canJump(int[] nums) {
 3         if(nums == null || nums.length == 0){
 4             return false;
 5         }
 6         int maxJump = 0;
 7         for(int i = 0; i<nums.length && i<=maxJump; i++){
 8             maxJump = Math.max(maxJump, i+ nums[i]);
 9         }
10         return maxJump<nums.length-1 ? false:true;
11     }
12 }

 

LeetCode Jump Game

标签:

原文地址:http://www.cnblogs.com/Dylan-Java-NYC/p/4834075.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!