LeetCode 55: Jump Game

原创 2016年05月30日 19:23:09

LeetCode 55: Jump Game

算法一思路

(1)假定用start出发,用next记录从[start + 1, end]出发能到达的最远距离;
(2)更新start和end;
(3)如果next和end相等,表明不能继续,返回false;

代码

public class Solution {
    public boolean canJump(int[] nums) {
        if (nums.length == 1) return true;
        int start = 0, end = nums[0], next = end;
        while (end < nums.length - 1) {
            for (int i = start + 1; i <= end; i++) {
                if (i + nums[i] > next) next = i + nums[i]; 
            }
            if (next == end) return false;
            start = end;
            end = next;
        }
        return true;
    }
}

算法二思路

(1)从nums.length - 1 开始,如果 i + nums[i] >= min,表明如果能到达i则一定能到达最后一个索引处;
(2)更新min;
(3)最后min等于0,表示到达0就能到达最后,返回true;
(4)这两种算法的时间复杂度均为O(N).

public class Solution {
    public boolean canJump(int[] nums) {
        int N = nums.length;
        int min = N - 1;
        for (int i = N - 2; i >= 0; i--) {
            if (i + nums[i] >= min) min = i;
        }
        return (min == 0);
    }
}

Hacking the Game——聊聊黑客的三观

360开源大会不仅邀请10多位360内部技术专家,还特邀Apache基金会副总裁、触控未来CEO、华为和Intel等多位开源专家共聚大会,畅聊开源!
  • 2016年05月30日 11:08

Leetcode #55. Jump Game 跳跃游戏 解题报告

1 解题思想这道题的意思,就是给了一个数组,数组里面表示的是在这个位置上,最大可跳跃的位置。 那么现在,就假设你在0的位置上,问你可以跳跃到最末尾的位置吗?那么这道题的思路就是使用一个贪心法,使用一...
  • MebiuW
  • MebiuW
  • 2016-04-25 23:31:02
  • 1853

[leetcode]55. Jump Game ,C++/PYTHON实现,medium难度

[leetcode]55. Jump Game ,C++/PYTHON实现,medium难度
  • zl87758539
  • zl87758539
  • 2016-06-16 21:50:40
  • 628

LeetCode-55-Jump Game(贪心)-Medium

题意理解: 数组中的每个元素代表最多向后能够跳跃的距离,求解是否能够到达最后的一个元素; 题目分析: 贪心算法:每一步都确定能够跳跃的最大距离,如果最后一个元素在这个距离内则表示可达; ...
  • eddy_liu
  • eddy_liu
  • 2016-02-04 08:30:27
  • 1719

LeetCode --- 55. Jump Game

题目链接:Jump Game Given an array of non-negative integers, you are initially positioned at the first i...
  • makuiyu
  • makuiyu
  • 2015-03-12 10:31:10
  • 867

[LeetCode 55] Jump Game

题目链接:jump-game /** * Given an array of non-negative integers, you are initially positioned ...
  • ever223
  • ever223
  • 2015-03-29 13:02:42
  • 976

leetcode 55. Jump Game-贪心算法

原题链接:55. Jump Game 【思路-Java】贪心算法 本题采用贪心算法。 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来最好的选择。也就是说,不从整体最优上加以考虑...
  • happyaaaaaaaaaaa
  • happyaaaaaaaaaaa
  • 2016-06-11 16:28:26
  • 2159

【LeetCode】Jump Game 解题报告

【题目】 Given an array of non-negative integers, you are initially positioned at the first index of t...
  • ljiabin
  • ljiabin
  • 2014-12-09 09:59:53
  • 6302

LeetCode_Jump Game&&Jump Game II

Given an array of non-negative integers, you are initially positioned at the first index of the arra...
  • loveRooney
  • loveRooney
  • 2014-08-09 12:46:38
  • 9845

【LeetCode】Jump Game II 解题报告

【题目】 Given an array of non-negative integers, you are initially positioned at the first index o...
  • ljiabin
  • ljiabin
  • 2014-12-09 17:17:02
  • 3798
收藏助手
不良信息举报
您举报文章:LeetCode 55: Jump Game
举报原因:
原因补充:

(最多只允许输入30个字)