---
# System prepended metadata

title: 'LeetCode #70 Climbing Stairs'
tags: [LeetCode, Easy, Dynamic Programming]

---

###### tags: `LeetCode` `Easy` `Dynamic Programming`
# LeetCode #70 Climbing Stairs
### (Easy)

假設你正在爬樓梯。需要 n 階你才能到達樓頂。

每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢？

注意：給定 n 是一個正整數。


---
由於第i階樓梯可能為從第i-1階樓梯爬一階或是從第i-2階樓梯爬兩階達到, 因此使用迴圈即可得出到達第n階樓梯的組合數。

(當n=0或1時爬法皆為1種, 迴圈從i=2開始)

---
```
class Solution {
public:
    int climbStairs(int n) {
        int prev1=1, prev2=1, cur=1;
        for(int i=2;i<=n;i++){
            cur=prev1+prev2;
            prev2=prev1;
            prev1=cur;
        }
        return cur;
    }
};
```