`
frank-liu
  • 浏览: 1683035 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

leetcode: Jump Game

 
阅读更多

问题描述:

Given an array of non-negative integers, you are initially positioned at the first index of the array.

Each element in the array represents your maximum jump length at that position.

Determine if you are able to reach the last index.

For example:
A = [2,3,1,1,4], return true.

A = [3,2,1,0,4], return false.

 

原问题链接:https://leetcode.com/problems/jump-game/

 

问题分析

  这个问题相对来说比较好理解。在给定的数组里每个索引位置它所能到达的最远距离是它当前的索引值和它对应的值的和。因为要保证在遍历的过程中它都能达到当前的位置,所以我们需要用一个值max来表示它到目前位置为止所能到达的最大值。如果当前的索引比这个max要大的话,则肯定返回false。每次在循环中我们都需要更新max的值,保证它是当前最大的。

  所以可以很容易得到如下的代码实现:

 

public class Solution {
    public boolean canJump(int[] nums) {
        if(nums == null || nums.length <= 1) return true;
        int max = nums[0];
        for(int i = 0; i < nums.length; i++) {
            if(i > max) return false;
            max = Math.max(max, i + nums[i]);
        }
        return true;
    }
}

  这是一个线性时间复杂度的实现。基本上遍历一遍就可以了。 

 

2
6
分享到:
评论

相关推荐

    javalruleetcode-LeetCode::lollipop:个人LeetCode习题解答仓库-多语言

    java lru leetcode :ice_cream: LeetCode Kindem 的个人 LeetCode 题解仓库,欢迎交流学习。 下面的目录中 $number 题号代表经典 LeetCode ...LeetCode ...Jump Game 56 Merge Intervals 64 Minimum Path Sum 73

    leetcode71python-leetcode:leetcode

    leetcode 71 Python用 Python 编写 Leetcode (数据科学家的解决方案) - 易于理解的最佳解决方案,可以通过所有 Leetcode 测试用例,对于非 ...Game II (HARD) Leetcode 51. N-Queens (HARD) Leetcode 52. N-

    java-leetcode题解之Jump Game.java

    java java_leetcode题解之Jump Game.java

    java-leetcode题解之Jump Game II.java

    java java_leetcode题解之Jump Game II.java

    leetcode跳跃-leetcode:leetcode

    标题 "leetcode跳跃-leetcode:leetcode" 暗示着这是一个关于LeetCode的编程挑战和学习资源,特别是与解决跳跃游戏(Jump Game)相关的题目。LeetCode是一个在线平台,提供了大量的编程练习题,帮助开发者提高算法...

    leetcode跳跃-leetcode:leetcode一天一次

    Jump Game II - 二叉树 前序遍历判断二叉树:98. Validate Binary Search Tree - 二分查找 二分查找 + 数据缓存:1095. Find in Mountain Array 链表 有序链表合并:21. Merge Two Sorted Lists 回文 双指针判断回文...

    leetcode跳跃-Leetcode:力码

    "跳跃"在这里通常指的是LeetCode中的一个问题——“跳跃游戏”(Jump Game)。这类问题涉及到数组处理和动态规划等算法知识。 【描述】"LeetCode 跳跃 LeetCode" 这个描述虽然简短,但我们可以从中了解到讨论的...

    leetcode跳跃-LeetCode:力码

    在LeetCode中,有些跳跃问题可能可以通过贪心算法来解决,例如经典的“跳跃游戏”(Jump Game)系列。这类问题通常涉及到数组元素,需要确定在有限步数内能否到达数组的最后一个元素。 具体到“跳跃游戏”,我们...

    leetcode跳跃-leetcode:leetcode解题之路

    II](./Array/jump-game-ii.md) [0053 最大子序和](./Array/maximum-subarray.md) [0041 缺失的第一个整数](./Array/first-missing-positive.md) [0042 接雨水](./Array/trapping-rain-water.md) [0048 旋转图像](./...

    leetcode跳跃-leetcode:记录Leetcode刷题思路

    例如经典的“跳跃游戏”(Jump Game),要求在给定数组中,每个元素代表可以跳跃的最大距离,判断能否在限定步数内到达数组最后一个位置。 三、解题策略 1. 动态规划:对于一些有重叠子问题的跳跃题目,动态规划...

    gasstationleetcode-leetcode:LeetcodeOJ解决方案

    leetcode 【演示记录】 报告 展示 2017/03/06 1.二和,167.二和二 2107/03/06 15.3 总和,16.3 总和最近,18.4 总和,11.最多水的容器 2017/03/09 62.Unique Paths, 63.Unique Paths II, 64.Minimum Path Sum 2017/...

    Leetcode:leet码问题

    例如,经典问题"跳跃游戏"(Jump Game)要求判断给定的步长数组,是否存在一种跳跃方式能从头到尾遍历整个数组。 解这类问题时,我们可以尝试以下策略: 1. **广度优先搜索(BFS)**:从数组的第一个元素开始,逐步...

    leetcode:我的leetcode培训。 实践使完美!

    "跳跃游戏"(Jump Game)是一道涉及贪心算法和查找的题目。 7. **动态规划**:解决复杂问题,如斐波那契数列、背包问题等。"最长公共子序列"(Longest Common Subsequence)是一道经典的动态规划题目。 8. **回溯...

    java-leetcode题解之055-Jump-Game

    java入门 java_leetcode题解之055_Jump_Game

    fuxuemingzhu#Leetcode-Solution-All#55. Jump Game 跳跃游戏1

    1.贪心算法中,作出的每步贪心决策都无法改变,因为贪心策略是由上一步的最优解推导下一步的最优解,而上一步之前的最优解则不作保留 2.由(1)中的介绍,可以知道贪

    js-leetcode题解之55-jump-game.js

    js js_leetcode题解之55-jump-game.js

    C语言-leetcode题解之45-jump-game-ii.c

    c语言入门 C语言_leetcode题解之45-jump-game-ii.c

    C语言-leetcode题解之55-jump-game.c

    c是最好的编程语言 C语言_leetcode题解之55-jump-game.c

    js-leetcode题解之45-jump-game-ii.js

    js js_leetcode题解之45-jump-game-ii.js

Global site tag (gtag.js) - Google Analytics