Leetcode-Easy 70. Climbing Stairs

时间:2022-05-08
本文章向大家介绍Leetcode-Easy 70. Climbing Stairs,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

21. Merge Two Sorted Lists

  • 描述: 有n阶楼梯,每步只能走1个或2个台阶,请问到达第n阶楼梯一共有多少走法?
  • 思路: 动态规划 程序从 i=3 开始迭代,一直到 i=n 结束。每一次迭代,都会计算出多一级台阶的走法数量。迭代过程中只需保留两个临时变量a和b,分别代表了上一次和上上次迭代的结果。 为了便于理解,我引入了temp变量。temp代表了当前迭代的结果值。
  • 代码
 class Solution:
    def climbStairs(self, n):
        """
        :type n: int
        :rtype: int
        """
        
        # 递归 time limit
#         if n==1 or n==2:
#             return n
        
#         return Solution.climbStairs(self,n-1)+Solution.climbStairs(self,n-2)
        
        ## 备忘录算法 time limit
#         data={}
#         if n==1 or n==2:
#             return n
        
#         if n in data:
#             return data['n']
#         else:
#             value=Solution.climbStairs(self,n-1)+Solution.climbStairs(self,n-2)
#             data['n']=value
#             return value
        ## 动态规划
        if n==1 or n==2:
            return n
        first=1
        second=2
        temp=0
        for i in range(n-2):
            temp=first+second
            first=second
            second=temp
        return temp