leetcode#70爬樓梯-數學大法好

問題是n階樓梯要爬,每次可以走1步或者2步,問爬到n階,一共有多少種方法。

其實就是整數n拆分成若干個1和2的求和,假設n階有Sn種方法,那麼Sn可能是怎麼來的呢,就是Sn-1再+1,或者Sn-2再+2,所以劃分爲子問題,Sn=Sn-1 + Sn-2.

class Solution {

public:

    int climbStairs(int n) {

        vector<int> base(n+1,0);

        base[0]=1;

        base[1]=1;

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

            base[i]=base[i-1]+base[i-2];

        }

        return base[n];

    }

};

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