爬楼梯

问题描述

假设你正在爬楼梯,需要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层楼梯

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