509. 斐波那契数
题目链接:509. 斐波那契数
文档链接:509. 斐波那契数
视频链接:手把手带你入门动态规划 | LeetCode:509.斐波那契数
C++实现
class Solution {
public:
int fib(int n) {
if(n == 0) return 0;
if(n == 1) return 1;
int a = 0;
int b = 1;
int sum = 0;
for(int i = 2; i<=n;i++){
sum = a+b;
a = b;
b = sum;
}
return sum;
}
};
70. 爬楼梯
题目链接:70. 爬楼梯
文档链接:70. 爬楼梯
视频链接:带你学透动态规划-爬楼梯(对应力扣70.爬楼梯)| 动态规划经典入门题目
C++实现
class Solution {
public:
int climbStairs(int n) {
if(n == 1) return 1;
if(n == 2) return 2;
int a = 1;
int b = 2;
int sum = 0;
for(int i = 3; i<=n; i++){
sum = a +b;
a = b;
b = sum;
}
return sum;
}
};
746. 使用最小花费爬楼梯
题目链接:添加链接描述
文档链接:添加链接描述
视频链接:动态规划开更了!| LeetCode:746. 使用最小花费爬楼梯
C++实现
class Solution {
public:
int minCostClimbingStairs(vector<int>& cost) {
int dp0 = 0;
int dp1 = 0;
int dpi = 0;
for(int i = 2; i<=cost.size(); i++){
dpi = min(dp1 + cost[i-1], dp0 + cost[i-2]);
dp0 = dp1;
dp1 = dpi;
}
return dpi;
}
};