題目:
假設你正在爬樓梯。需要 n 階你才能到達樓頂。
每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢?
注意:給定 n 是一個正整數。
示例 1:
輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1. 1 階 + 1 階 2. 2 階示例 2:
輸入: 3 輸出: 3 解釋: 有三種方法可以爬到樓頂。 1. 1 階 + 1 階 + 1 階 2. 1 階 + 2 階 3. 2 階 + 1 階
思路:
我是借鑑這個的,這個漫畫講的真的很透徹,建議大家看一下,對自己一定會有很大的幫助。
https://mp.weixin.qq.com/s/3h9iqU4rdH3EIy5m6AzXsg
看完後寫出下面代碼:
public static int climbStairs(int n) {
if (n <= 0)
return 0;
if (n <= 1)
return 1;
// 上一次
int oneStep = 1;
// 上上一次
int twoStep = 1;
int result = 0;
for (int i = 1; i < n; i++) {
result = oneStep + twoStep;
twoStep = oneStep;
oneStep = result;
}
return result;
}