Algorithm
爬樓梯
假設(shè)你正在爬樓梯残拐。需要 n 階你才能到達(dá)樓頂。
每次你可以爬 1 或 2 個臺階问芬。你有多少種不同的方法可以爬到樓頂呢?
注意:給定 n 是一個正整數(shù)汉柒。
示例 1:
輸入: 2
輸出: 2
解釋: 有兩種方法可以爬到樓頂兽间。
- 1 階 + 1 階
- 2 階
示例 2:
輸入: 3
輸出: 3
解釋: 有三種方法可以爬到樓頂嘀略。
- 1 階 + 1 階 + 1 階
- 1 階 + 2 階
- 2 階 + 1 階
public int climbStairs(int n) {
if (n == 1) {
return 1;
}
if (n == 2) {
return 2;
}
int[] status = new int[n + 1];
status[1] = 1;
status[2] = 2;
// f(n) = f(n-2) + f(n-1)
for (int i = 3; i <= n; i++) {
status[i] = status[i-1] + status[i-2];
}
return status[n];
}
Review
Tip
1咒程、做人做事要有原則帐姻,在別人能接受的范圍內(nèi)按照自己的想法來做饥瓷。
2痹籍、
词裤。