Explain this dynamic programming climbing n-stair code

前端 未结 2 1073
说谎
说谎 2020-12-15 22:58

Problem is

\"You are climbing a stair case. Each time you can either make 1 step or 2 steps. The staircase has n steps. In how many distinct ways can you climb the s

2条回答
  •  时光取名叫无心
    2020-12-15 23:37

    Climbing Stairs Using DP

    class Solution {
       public:
         int climbStairs(int n) {
        int dp[n+1];
    
        if (n <= 1)
            return 1;
    
        if (n ==2)
            return 2;
    
        dp[0] = 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];
       }};
    

提交回复
热议问题