刷题70。階段を上る

I、題する説明

タイトル70クライミング階段、階段(階段)を登って、一つのステップ1,2を登ることができ、n層方式を登るためのいくつかのステップがあります。難易度は簡単です!

第二に、私の答え

同様の話題が行われ、問題は非常に簡単になります。まず、再帰的計算:

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

非常にTime Limit Exceeded申し訳ありません

Dpのアルゴリズムは、それを使用します。

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];
        }
};

パフォーマンス:

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.

第三に、最適化の対策

最適化されていません!

おすすめ

転載: www.cnblogs.com/siweihz/p/12249161.html