![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
文章平均质量分 68
Jzzziiq.
这个作者很懒,什么都没留下…
展开
-
买卖股票的最佳时机(各种变型)
买卖股票的最佳时机及其各种变型题目因为是动态规划这一专栏,所以主要目的是训练动态规划思维121. 买卖股票的最佳时机。原创 2023-12-27 19:25:13 · 761 阅读 · 0 评论 -
动态规划_打家劫舍(Ⅰ~Ⅲ)
打家劫舍系列198. 打家劫舍打家劫舍的dp递推公式比较容易找到难的是边界情况判断以及跟树结合时需要使用备忘录。原创 2023-12-27 11:14:49 · 1347 阅读 · 1 评论 -
动态规划剩余部分(15-18)
一篇一篇来好麻烦,反正是自己看,全部写一起了15题往后的题解结构和15题相同,后面的在目录上就不体现了。原创 2023-12-24 13:07:42 · 187 阅读 · 1 评论 -
动态规划_14(LeetCode:377. 组合总和 Ⅳ)
排列问题和组合问题的精髓在于遍历顺序外循环为背包容量,内循环为物品种类时得到的结果为排列数外循环为物品种类,内循环为背包容量时得到的结果的组合数。原创 2023-12-23 16:57:32 · 30 阅读 · 1 评论 -
动态规划_13(LeetCode:518. 零钱兑换 II)
其含义为:在coins数组前i个硬币面值中任取,最后能够凑出大小为j的组合数。组合问题,dp数组的含义自然是组合数。对于在第i层fori循环的dp[j]dp[j-coins[i] ]表示。求组合数->递推公式为相加。无限取->完全背包问题。,凑成各个面值的组合数。原创 2023-12-23 15:28:10 · 21 阅读 · 1 评论 -
动态规划_12(LeetCode:474. 一和零)
要注意观察题目条件,判断要使用的背包类型有时候会将本题中的01个数看作两个物品(0和1)(多重背包)重复选择。原创 2023-12-23 13:27:43 · 137 阅读 · 1 评论 -
动态规划_11(LeetCode:494. 目标和)
转成背包问题的思路还是找不到,多练几题找找感觉。原创 2023-12-23 11:29:24 · 129 阅读 · 1 评论 -
动态规划_10(LeetCode:1049. 最后一块石头的重量 II)
这类题难在了如何转到背包问题上进行求解。原创 2023-12-22 23:57:11 · 35 阅读 · 0 评论 -
背包问题_01背包
用于快速过01背包的知识点注意:dp数组索引那块可能比较混乱,多理解一下有N件物品和一个容量为V 的背包。放入第i件物品耗费的空间是Ci,得到的价值是Wi。求解将哪些物品装入背包可使价值总和最大。原创 2023-12-21 12:38:42 · 334 阅读 · 1 评论 -
动态规划第七题(LeetCode:96. 不同的二叉搜索树)
第一次尝试md找了个模板改了一下又在写递推公式时不细心处理边界,导致数组越界.下次注意XD。原创 2023-12-20 15:20:06 · 46 阅读 · 1 评论 -
动态规划第六题(LeetCode:343. 整数拆分)
改后:max = cur*(i-cur) > cur * dp[i - cur]?可以先从1开始从小到大固定一个数(记作cur),然后在cur遍历(1-i)时维护一个max=cur*dp[i-cur]而cur遍历可以做剪枝优化(cur遍历到i/2即可,因为乘法的交换律,可以理解为和(i-cur)对称,出现重复了)max:cur*dp[i-cur];原来的递推公式忽略了cur*(i-cur)可能会比cur*dp[i-cur]还要大的情况。i*dp[i-cur]应改为cur*dp[i-cur]原创 2023-12-20 13:36:07 · 36 阅读 · 1 评论 -
动态规划第五题(LeetCode:63. 不同路径 II)
前的表达式为真时,整个式子的值就等于' : '前的值,否则为后者,三目运算符节省了一个if判断语句,在很多地方都有妙用。2^在对第一行和第一列初始化的时候,遇到障碍后,此后的位置都要设为0(因为到达它们的位置有且仅有一条,还被障碍挡住)1^在写递推公式时,多了个障碍判断,如果当前坐标处有障碍,则无法抵达此位置,dp数组的值就要设为0;我这里用初始值为1的key来记录是否有经过障碍,经过时将key改为0,后面的赋值也就都为0了。原创 2023-12-19 19:13:43 · 25 阅读 · 1 评论 -
动态规划第四题(LeetCode:62. 不同路径)
然后这一题还学到了二维vector带大小的定义,以前从来没用过:vector dp(行数,vector (列数,初始化的值?))----这里最后一个参数不知道是不是这个意思。后面将第一行和第一列初始化为1后(因为这上面的坐标只能够从一个方向走来),就可以将递推公式化简:dp[i][j]=dp[i-1][j]+dp[i][j-1]把递推公式复杂化了dp[i][j]=(i>0?原创 2023-12-19 17:46:46 · 28 阅读 · 1 评论 -
动态规划第三题(LeetCode:746. 使用最小花费爬楼梯)
1^题目要求到达的top对应的是dp数组中索引为cost.size()的值。2^起点可以选择0或1,所以dp数组中0和1对应的花费为0。原创 2023-12-19 17:08:28 · 38 阅读 · 1 评论 -
动态规划第二题(LeetCode:70. 爬楼梯)
难在了如何自己想出递推公式(第一题递推公式直接给出)本题的递推公式和第一题的斐波那契数列相同。原创 2023-12-19 16:51:19 · 29 阅读 · 1 评论 -
动态规划第一题(LeetCode:509. 斐波那契数)
【代码】动态规划第一题(LeetCode:509. 斐波那契数)原创 2023-12-19 16:24:09 · 30 阅读 · 0 评论