
动态规划
文章平均质量分 82
陌然。。
这个作者很懒,什么都没留下…
展开
-
【01 背包】
使用一维dp数组的写法,比较直观简洁,而且空间复杂度还降了一个数量级!一维dp遍历背包的顺序是倒序,倒序遍历是为了保证物品i只被放入一次!如果正序遍历了,那么物品0就会被重复加入多次!所以要倒序,先算容量大时的最大价值总和,才能保证背包容量小时的价值总和未被新计算的值覆盖。纯二维的01背包,代码中的两个for循环的嵌套顺序可以反过来。一维数组的01背包,两个for循环的顺序不能反过来。因为对于二维dp,dp[i][j]都是通过上一层即dp[i - 1][j]计算而来,本层的dp[i][j]并不会被覆盖。原创 2025-02-15 11:37:20 · 243 阅读 · 0 评论 -
【746. 使用最小花费爬楼梯 简单】
时间复杂度:O(n)空间复杂度:O(n)原创 2025-02-12 10:40:16 · 814 阅读 · 0 评论 -
【509. 斐波那契数 简单】
动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的。贪心解决不了动态规划的问题。时间复杂度:O(n)空间复杂度:O(n)斐波那契数列这道题目是非常基础的题目,这里严格按照动规五部曲来分析了这道题目。原创 2025-02-11 21:39:58 · 694 阅读 · 0 评论