美文网首页
跳跃游戏 -dp

跳跃游戏 -dp

作者: fdsun | 来源:发表于2020-06-02 10:49 被阅读0次

给出一个非负整数数组,你最初定位在数组的第一个位置。

数组中的每个元素代表你在那个位置可以跳跃的最大长度。

判断你是否能到达数组的最后一个位置。

样例
样例 1

输入 : [2,3,1,1,4]
输出 : true
样例 2

输入 : [3,2,1,0,4]
输出 : false
挑战
这个问题有两个方法,贪心和动态规划。

贪心方法时间复杂度为O(N)。

动态规划方法的时间复杂度为为O(n^2)。

我们手动设置小型数据集,使大家可以通过测试的两种方式。这仅仅是为了让大家学会如何使用动态规划的方式解决此问题。如果您用动态规划的方式完成它,你可以尝试贪心法,以使其再次通过一次。

注意事项
数组A的长度不超过5000,每个元素的大小不超过5000

    /**
     * i -> n-1
     * n-1 - i <= f[i]
     *
     * @param A: A list of integers
     * @return: A boolean
     */
    public static boolean canJump(int[] A) {
        // write your code here
        int n = A.length;
        boolean[] f = new boolean[n];
        f[0] = true;

        for (int i = 1; i < n; i++) {
            for (int j = 0; j < i; j++) {
                if (f[j] && A[j] + j >= i) {
                    f[i] = true;
                    break;
                }
            }
        }
        return f[n - 1];
    }

相关文章

  • 跳跃游戏 -dp

    给出一个非负整数数组,你最初定位在数组的第一个位置。 数组中的每个元素代表你在那个位置可以跳跃的最大长度。 判断你...

  • 计蒜客=跳跃游戏2(dp)

    链接如下: 跳跃游戏二 - 题库 - 计蒜客 这是上一个条约游戏的延伸.看到这题第一个想法是把所有情况列出来,但是...

  • 5631. 跳跃游戏 VI(单调队列+dp)

    5631. 跳跃游戏 VI[https://leetcode-cn.com/problems/jump-game-...

  • 55. 跳跃游戏---自底向上的dp

    自顶向下算法是基于从左往右的推导,自底向上算法是基于从右往左的推导不用递归调用就可以实现1:第一层for循环,从倒...

  • 55. 跳跃游戏---自顶向下的dp

    1:要理解回溯问题,直接画出二叉树,然后通过不断的剪枝来实现dp数组的1代表该点肯定能到达最后节点,0代表还不确定...

  • 跳跃游戏

    可以正向扫描数组,记录当前位置可以到达最远的位置,a、游标要小于可以到达最远的位置,否则return false。...

  • 跳跃游戏

    【链接】https://nanti.jisuanke.com/t/18【题目】给定一个非负整数数组,假定你的初始位...

  • 跳跃游戏

    LintCode题目地址给出一个非负整数数组,你最初定位在数组的第一个位置。数组中的每个元素代表你在那个位置可以跳...

  • 跳跃游戏

    给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否...

  • 跳跃游戏

    给出一个非负整数数组,你最初定位在数组的第一个位置。 数组中的每个元素代表你在那个位置可以跳跃的最大长度。 判断你...

网友评论

      本文标题:跳跃游戏 -dp

      本文链接:https://www.haomeiwen.com/subject/lhayzhtx.html