class Solution {
public:
int climbStairs2(int n) {
//dp[i]表示能到达第i阶的方法总数
//dp[i]=dp[i-1]+dp[i-2]
vector<int>dp(n + 1, 0);
if (n <= 2)return n;
dp[1] = 1;
dp[2] = 2;
for (int i = 3; i <= n; i++)
{
dp[i] = dp[i - 1] + dp[i - 2];
}
return dp[n];
}
int climbStairs(int n) {
if (n <= 2)return n;
int prev = 1;
int current = 2;
int temp;
for (int i = 3; i <= n; i++)
{
temp = prev;
prev = current;
current = temp + current;
}
return current;
}
};
爬楼梯(最简单的dp)
最新推荐文章于 2024-01-07 07:15:00 发布