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;
}
}
};
4/09/2014
Leetcode -- Climbing Stairs
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment