70 爬樓梯(簡單)

2021-10-01 09:20:35 字數 825 閱讀 3361

解題思路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 解釋 有三種方法可以爬到樓頂...