假設你正在爬樓梯。需要 n 階你才能到達樓頂。
每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?
注意:給定 n 是乙個正整數。
示例:
輸入: 3
輸出: 3
解釋: 有三種方法可以爬到樓頂。
1 階 + 1 階 + 1 階
1 階 + 2 階
2 階 + 1 階
第一遍自己寫的,沒想出來,但找到了斐波拉契數列的規律,就套著用了
後面看了解析,解題就是要用斐波拉契數列的思路,就和在方格裡找路徑數一樣
到達每乙個格仔都有兩種方式,這個格仔的數就等於前兩個格仔相加的總數
public
class
solution
int[
] dp =
newint
[n +1]
; dp[1]
=1; dp[2]
=2;for
(int i =
3; i <= n; i++
)return dp[n];}
}
class
solution
:def
climbstairs
(self, n)
:if n ==0:
return n
lastrnun =
0 res =
1for x in
range
(n):
temp = res
res += lastrnun
lastrnun = temp
return res
LeetCode刷題 70 爬樓梯
假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1.1 階 1 階 2.2 階 示例 2 輸入 3 輸出 3 解釋 有三種方法可以爬到樓頂。1...
leetcode刷題 70爬樓梯
假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。最開始使用的是回溯的方法,但是時間效率地下沒有通過,於是想到了動態規劃的演算法。對於i樓梯,到達其的方法有從i 1跨一步和i 2跨兩步,因此到底i的方法就...
Leetcode刷題筆記
1.兩數之和給定乙個整數陣列nums 和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。ps 你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。思路 用target減去nums中的每乙個數,並設立乙個字典來記錄對應的下標 class...