zoukankan      html  css  js  c++  java
  • 116. 跳跃游戏(回顾)

     116. 跳跃游戏

    中文English

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

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

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

    样例

    样例 1

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

    样例 2

    输入 : [3,2,1,0,4]
    输出 : false
    

    挑战

    这个问题有两个方法,一个是贪心和 动态规划

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

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

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

    注意事项

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

    class Solution:
        """
        @param A: A list of integers
        @return: A boolean
        """
        def canJump(self, A):
            # write your code here
            ans = 0 
            p = 0
            for i in A[:-1]:
                ans = max(ans,i+p)
                if ans <= p:
                    return False
                p += 1
            return True
            
                

     

    117. 跳跃游戏 II

    中文English

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

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

    你的目标是使用最少的跳跃次数到达数组的最后一个位置。

    样例

    样例 1

    输入 : [2,3,1,1,4]
    输出 : 2
    解释 : 到达最后位置的最小跳跃次数是2(从下标0到1跳跃1个距离长度,然后跳跃3个距离长度到最后位置)
    class Solution:
        """
        @param A: A list of integers
        @return: An integer
        """
        def jump(self, A):
            # write your code here
            ans = 0
            p = 0 
            c = 0
            for i in A[:-1]:
                #如果当前位置+跳跃长度 > ans 的话,说明需要跳一次,此时需要计数,c += 1
                if i+p > ans:
                    ans = i + p 
                    c += 1
                #如果最大跳跃长度已经大于最大长度的话,就可以break
                if ans >= len(A[:-1]):
                    return c 
                p += 1 
            return 0
                
     
  • 相关阅读:
    BZOJ1912 [Apio2010]patrol 巡逻
    BZOJ2432 [Noi2011]兔农
    BZOJ1010 [HNOI2008]玩具装箱toy
    BZOJ3240 [Noi2013]矩阵游戏
    洛谷【P1303】A*B Problem
    洛谷【2142】高精度减法
    洛谷【P1100】高低位交换
    OIer应该知道的二进制知识
    洛谷【P3908】异或之和
    洛谷【P2431】正妹吃月饼
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12864183.html
Copyright © 2011-2022 走看看