class Solution { public: int climbStairs(int n) { vector<int> dp(n, 0); dp[0] = 1; dp[1] = 2; return climbStairsHelper(n - 1, dp); } int climbStairsHelper(int n, vector<int>& dp) { if(n == 0 || n == 1) { return dp[n]; } else { int ways = 0; if(dp[n - 1] != 0) { ways += dp[n - 1]; } else { ways += climbStairsHelper(n - 1, dp); } if(dp[n - 2] != 0) { ways += dp[n - 2]; } else { ways += climbStairsHelper(n - 2, dp); } dp[n] = ways; return ways; } } };
No comments:
Post a Comment