lintcode算法题之 爬楼梯

每日一刷-lintcode算法题之 爬楼梯

    • 问题描述
    • 方法
    • 代码示例

问题描述

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

方法

采用动态规划的思想,f为走到第n个台阶的方法数,可以由第n-2个台阶走两步到达,以及第n-1个台阶走1步到达这两种方法。

代码示例

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

你可能感兴趣的:(lintcode算法题之 爬楼梯)