刷题70. Climbing Stairs

I, entitled Description

Title 70. Climbing Stairs, climbing stairs (stairs), one can climb steps 1, 2, there are several steps to climb n-layer method. The difficulty is Easy!

Second, my answer

Similar topics done, the problem becomes very simple. First, a recursive calculation:

class Solution{
    public:
        int climbStairs(int n){
            if(n==1) return 1;
            if(n==2) return 2;
            return climbStairs(n-1) + climbStairs(n-2);
        }
};

Very Time Limit Exceededsorry .

Dp algorithm then use it:

class Solution{
    public:
        int climbStairs(int n){
            if(n==1) return 1;
            if(n==2) return 2;
            vector<int>dp;
            dp.push_back(1);
            dp.push_back(2);
            for(int i=2;i<n;i++){
                dp.push_back(dp[i-1]+dp[i-2]);
            }
            return dp[n-1];
        }
};

performance:

Runtime: 4 ms, faster than 55.03% of C++ online submissions for Climbing Stairs.
Memory Usage: 8.4 MB, less than 51.47% of C++ online submissions for Climbing Stairs.

Third, the optimization measures

Not optimized!

Guess you like

Origin www.cnblogs.com/siweihz/p/12249161.html