lintcode_111_爬楼梯

爬楼梯

 

假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?

样例

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

返回 3

 
 
 
 
每次迈出一步或者两步,那么当前步数n就是n-1步的数目 加上n-2步的数目。
n-1步 迈一步到n
n-2步 迈两步到n
class Solution {
public:
    /**
     * @param n: An integer
     * @return: An integer
     */
     int a[999999];
    int climbStairs(int n) {
        // write your code here
        a[0]=1;
        a[1]=1;
        for(int i=2;i<=n;i++){
            a[i]=a[i-1]+a[i-2];
        }
        return n==0?0:a[n];
    }
};

 

 

 
posted @ 2017-10-19 16:33  会飞的雅蠛蝶  阅读(249)  评论(0编辑  收藏  举报