爬樓梯

問題描述

假設你正在爬樓梯,需要n步你才能到達頂部。但每次你只能爬一步或者兩步,你能有多少種不同的方法爬到樓頂。

樣例

比如n=3,1+1+1=1+2=2+1=3,共有3種不同的方法

返回 3

解題思路

狀態轉移方程a[i]=a[i-1]+a[i-2];

代碼

class Solution {
public:
    /**
     * @param n: An integer
     * @return: An integer
     */
    int climbStairs(int n) {
        // write your code here
        if(n==1) return 1;
        if(n==2) return 2;
        else
        {
            int a[n];
        for(int i=0;i<n;i++)
        {   a[i]=i+1;
            if(i>1) a[i]=a[i-1]+a[i-2];
        }
        return a[n-1];
        }
    }
};

感想

思路比較好找,題目的n可以看成n層樓梯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章