算法刷题记录 Day33
Date: 2024.03.29
lc 746. 使用最小花费爬楼梯
class Solution {
public:int minCostClimbingStairs(vector<int>& cost) {// dp[i]表示到达第i阶楼梯的最小花费// dp[i] = min(dp[i-2]+cost[i-2], dp[i-1]+cost[i-1]);// dp[0] = 0; dp[1] = 0;int n = cost.size();vector<int> dp(n+1, 0);for(int i=2; i<=n; i++){dp[i] = min(dp[i-2]+cost[i-2], dp[i-1]+cost[i-1]);}return dp[n];}
};
lc 70. 爬楼梯
class Solution {
public:int climbStairs(int n) {if(n <= 2)return n;// dp[i]表示到达楼顶的方法数。// dp[i] = dp[i-1] + dp[i-2];// dp[i] = 1, dp[2] = 2vector<int> dp(n+1, 0);dp[1] = 1;dp[2] = 2;for(int i=3; i<=n; i++){dp[i] = dp[i-1] + dp[i-2];}return dp[n];}
};
lc 509. 斐波那契数列
class Solution {
public:int fib(int n) {if(n < 2)return n;vector<int> f(n+1, 0);f[0] = 0;f[1] = 1;for(int i=2; i<=n; i++){f[i] = f[i-1] + f[i-2];}return f[n];}
};