LeetCode0070.爬楼梯【简单】【Python】【动态编程】问题LeetCode你正在爬楼梯。到达顶部需要n步。每次您可以爬1步或2步。您可以通过多少种不同的方式爬到顶部?注意:给定n将是一个正整数。示例1:输入:2输出:2解释:有两种方法可以爬到顶部。1.1步+1步2。2个步骤示例2:输入:3输出:3解释:有3种方式可以爬到顶端。1.1步+1步+1步2。1步+2步3。2步+1步问题讲座假设你正在爬楼梯。需要走n步才能到达建筑物的顶部。您一次可以爬1或2个台阶。您可以通过多少种不同的方式到达建筑物的顶部?注:给定的n为正整数。示例1:输入:2输出:2解释:有两种方法可以到达建筑物的顶部。1.Step1+Step12.Step2示例2:输入:3输出:3解释:有三种方法可以爬到建筑物的顶部。1.1storder+1storder+1storder2.1storder+2ndorder3.2ndorder+1storder动态规划的初始条件与斐波那契数列略有不同:dp_0=1,dp_1=1。递归公式:fib(n)=fib(n-1)+fib(n-2)时间复杂度:O(n)空间复杂度:O(1)Python3代码类解法:defclimbStairs(self,n:int)->int:#初始条件不同于斐波那契数列dp_0,dp_1=1,1for_inrange(n):dp_0,dp_1=dp_1,dp_0+dp_1returndp_0GitHublinkPython
