![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
动态规划
龙崎流河
沉淀
展开
-
647. 回文子串 516. 最长回文子序列
动态规划:dp[i][j] 表示字符串下标从i到j是否是回文字符串时间空间复杂度都是n ^ 2为降低空间复杂度使用中心扩散法:分成两种扩散,一种是中心点是一个元素的扩散,奇数个数的回文字符串,另一种是中心点是两个元素的扩散,偶数个数的回文字符串。原创 2023-03-14 14:21:51 · 62 阅读 · 0 评论 -
583. 两个字符串的删除操作 72. 编辑距离
【代码】583. 两个字符串的删除操作 72. 编辑距离。原创 2023-03-14 00:18:52 · 64 阅读 · 0 评论 -
1035. 不相交的线 392. 判断子序列 115. 不同的子序列
和最长公共子序列题目思路完全一致,相当于换了个问法,开始没反应过来。原创 2023-03-13 23:22:51 · 54 阅读 · 0 评论 -
300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组 1143. 最长公共子序列
该题关键就是定义dp,dp[i]是以nums[i]为结尾的i之前包括i的最长递增子序列。需要遍历i之前的元素和nums[i]比较大小,如果nums[i] > nums[j]那么就属于递增,就dp[i]+1。原创 2023-03-12 14:47:28 · 201 阅读 · 0 评论 -
309. 最佳买卖股票时机含冷冻期 714. 买卖股票的最佳时机含手续费
比较好理解就是卖出时候减去手续费即可。不太好想,买入的时候加上手续费。原创 2023-03-11 22:55:45 · 63 阅读 · 0 评论 -
买卖股票的最佳时机 I II III IV
自己的思路:采用求最长连续子串和题目的思路dp[i][0] dp[i][1] 表示第i天持有股票所得最多现金.持有股票dp[i][0]:1.之前就持有股票dp[i - 1][0]2.现在刚持有也就是买入股票-prices[i]不持有股票dp[i][1]:1.之前就不持有股票dp[i - 1][1]2.现在刚不持有也就是卖掉股票dp[i - 1][0] + prices[i]优化空间复杂度,不需要那么长的数组只需要两块。原创 2023-03-11 11:43:53 · 400 阅读 · 0 评论 -
198.打家劫舍 213.打家劫舍II 337.打家劫舍 III
res[0]表示没偷当前节点,res[0] = Math.max(left[0],left[1]) + Math.max(right[0],right[1]);也就是左右两节点有没有被偷过无所谓,取偷过或者没偷过的最大值即可。res[1]表示偷了当前节点,res[1] = root.val + left[0] + right[0] 也就是左右孩子节点没被偷过的值加上当前被偷的值就是盗取的金额。可以使用一个map把计算过的结果保存一下,这样如果计算过孙子了,那么计算孩子的时候可以复用孙子节点的结果。原创 2023-03-10 19:55:51 · 128 阅读 · 0 评论 -
322. 零钱兑换 279.完全平方数 139.单词拆分
完全背包问题,需要注意的是数组的初始值。原创 2023-03-08 23:02:23 · 189 阅读 · 0 评论 -
零钱兑换II 组合总和 Ⅳ 爬楼梯(0-1背包)
但本题和纯完全背包不一样,纯完全背包是凑成背包最大价值是多少,而本题是要求凑成总金额的物品组合个数!回归本题,动规五步曲来分析如下:确定dp数组以及下标的含义dp[j]:凑成总金额j的货币组合数为dp[j]确定递推公式dp[j] 就是所有的dp[j - coins[i]](考虑coins[i]的情况)相加。dp数组如何初始化首先dp[0]一定要为1,dp[0] = 1是 递归公式的基础。如果dp[0] = 0 的话,后面所有推导出来的值都是0了。原创 2023-03-08 21:43:52 · 196 阅读 · 0 评论 -
416. 分割等和子集
01背包相对于本题,主要要理解,题目中物品是nums[i],重量是nums[i],价值也是nums[i],背包体积是sum/2。如果dp[j] == j 说明,集合中的子集总和正好可以凑成总和j,理解这一点很重要。只有确定了如下四点,才能把01背包问题套到本题上来。dp[j]的数值一定是小于等于j的。原创 2023-03-03 13:05:35 · 64 阅读 · 0 评论 -
343. 整数拆分 96.不同的二叉搜索树
这题用动态规划确实没想到。原创 2023-03-02 22:03:25 · 85 阅读 · 0 评论 -
62. 不同路径 63. 不同路径 II
【代码】62. 不同路径 63. 不同路径 II。原创 2023-02-20 22:48:42 · 79 阅读 · 0 评论 -
509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯
【代码】509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯。原创 2023-02-20 22:15:49 · 85 阅读 · 0 评论