记算法面试题--爬楼梯

/ C++ / 没有评论 / 94浏览

你在爬楼梯,需要n步才能爬到楼梯顶部,每次你只能向上爬1步或者2步。有多少种方法可以爬到楼梯顶部?

class Solution {
public:
    /**
     * 
     * @param n int整型 
     * @return int整型
     */
    int climbStairs(int n) {
        // write code here
        if(n == 1) 
            return 1;
        std::vector<int> dp(n+1);
        dp[1] = 1;
        dp[2] = 2;
        for(int i=3; i<=n ; i++)
        {
            dp[i] = dp[i-1] + dp[i-2];
        }
        return dp[n];
    }
};