解題思路1:
使用斐波那契序列:從第二個之後第n個結果為n - 1, n - 2項之和。使用遞迴呼叫。
def
climbstairs
(n):
''' if n ==0:
return
0if n ==1:
return
1if n ==2:
return
2if n >2:
return climbstairs(n -1)
+ climbstairs(n -
2)
解題思路二:
使用動態規劃。定義乙個長度為n+1的陣列,將每個計算的值存入陣列中,下一次計算就會直接從陣列中取值,而不是遞迴計算。從第二個值之後,第n個元素的值為第 n-1,n-2元素的和。
def
climbstairs
(self, n)
: dp =[0
]*(n +1)
if n <2:
dp[n]
= n else
: dp[1]
=1dp[2]
=2for i in
range(3
, n +1)
:#print(i)
dp[i]
= dp[i -1]
+ dp[i -2]
return dp[n]
70 爬樓梯(簡單題)
假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1 階 1 階 2 階 示例 2 輸入 3 輸出 3 解釋 有三種方法可以爬到樓頂。1 階 1...
LeetCode 70 爬樓梯 簡單
假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1.1 階 1 階 2.2 階 示例 2 輸入 3 輸出 3 解釋 有三種方法可以爬到樓頂。1...
LeetCode筆記 70爬樓梯
題目 假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1.1 階 1 階 2.2 階示例 2 輸入 3 輸出 3 解釋 有三種方法可以爬到樓頂...