Leetcode刷题日记-70. 爬楼梯

tech2025-08-03  9

斐波那契数列 递归思想,寻找f(n)和f(n-1)的关系

假设,前n-1个台阶已经算出方法数为f(n-1),现在要多加一层台阶,那么就会出现以下两种情况:

前n-1个台阶的走法不变,最后走1阶,那么n阶的走法为f(n-1);前n-2个台阶的走法不变,最后走2阶,那么n阶的走法为f(n-2);

综上n阶台阶的走法可以是f(n-1)也可以是f(n-2),那么总的走法就为:f(n)=f(n-1)+f(n-2)

class Solution(object): def climbStairs(self, n): """ :type n: int :rtype: int """ dp=[0 for i in range(n+1)] dp[0]=1 dp[1]=1 for i in range(2,n+1): dp[i]=dp[i-1]+dp[i-2] return 0 if(n==0) else dp[n] class Solution { public int climbStairs(int n) { if (n==0){return 0;} else if (n==1) {return 1;} else{ int[] dp = new int[n+1]; dp[0]=1; dp[1]=1; for (int i=2;i<=n;i++){ dp[i]=dp[i-1]+dp[i-2]; } return dp[n]; } } }

知识点

python的三目表达式a=(x if (x>y) else y) python创建容量为n的数组 arr=[0 for i in range(n)]

最新回复(0)