---
# System prepended metadata

title: 作業 2 遞精喔

---

# 作業 2 遞精喔
### 1. 一般遞迴
```
int climbStairs(int n){
    if(n<2)
        return 1;
    else{
        return climbStairs(n-1)+climbStairs(n-2);
    }
}
```
#### 結果:Time Limit Exceeded 超時
![](https://i.imgur.com/9TUZ2Ah.png)



---
### 2. 記憶遞迴
```
int result[46] = {0};

int climbStairs(int n)
{
    if(n <= 1)
    {
        return 1;
    }
    
    if(result[n] > 0)
    {
        return result[n];
    }
    
    result[n] = climbStairs(n - 1) + climbStairs(n - 2);
    
    return result[n];
}
```
### Leet Code 結果
執行時間:3 ms
記憶體用量：5.4 MB
![](https://i.imgur.com/ragvfJK.png)


---
### 3. 陣列
```
int climbStairs(int n) {

    if(n == 0||n==1)

        return n;

   int b = 1;

   int a = 2;    

   for(int i=3;i<=n;i++){

       a = a+b;

       b = a-b; 

   }

   return a; 

}
```
### Leet Code 結果
執行時間:0 ms
記憶體用量：5.4 MB
![](https://i.imgur.com/RVFz10x.png)
