509. 斐波那契数
文档讲解:代码随想录.斐波那契数
视频讲解:手把手带你入门动态规划 | LeetCode:509.斐波那契数
状态:已完成
代码实现
class Solution {
public:int fib(int n) {if (n <= 1)return n;vector<int> dep(n + 1); // 确定动态规划的数组dep[0] = 0; // 确定初始化条件dep[1] = 1;for (int i = 2; i <= n; i++) // 确定遍历公式dep[i] = dep[i - 1] + dep[i - 2]; // 确定推导公式return dep[n];}
};
心得体会
- 动态规划学习的时候,应该深入的理解有哪些步骤和模块,从简单的例子入手,熟悉答题模板
70. 爬楼梯
文档讲解:代码随想录.爬楼梯
视频讲解:带你学透动态规划-爬楼梯(对应力扣70.爬楼梯)| 动态规划经典入门题目
状态:已完成
代码实现
class Solution {
public:int climbStairs(int n) {if (n <= 1)return n;vector<int> dp(n + 1); // 确定dp的类型dp[1] = 1; // 确定初始化的值dp[2] = 2;for (int i = 3; i <= n; i++) { // 确定从前往后的顺序dp[i] = dp[i - 1] + dp[i - 2]; // 确定dp的公式}return dp[n];}
};
心得体会
- 应该学会将具体的问题抽象化为具体的数学公式
746. 使用最小花费爬楼梯
文档讲解:代码随想录.使用最小花费爬楼梯
视频讲解:动态规划开更了!| LeetCode:746. 使用最小花费爬楼梯
状态:已完成
代码实现
class Solution {
public:int minCostClimbingStairs(vector<int>& cost) {vector<int> dp(cost.size() + 1); // 确定初始的dp数组dp[0] = 0; // 初始化dp[1] = 0;for (int i = 2; i <= cost.size(); i++)dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);return dp[cost.size()];}
};
心得体会
- 初步完成入门