2刷。感觉看矩阵不太好理解,还是按原来的。 动态规划假设子问题已经解决,看最后一步。 class Solution { //dp[i][j],ss[i...j]是不是回文子串 //递推 //dp[i][j]=dp[i+1][j-1]&&s[i]==s[j] //注意循环遍历的顺序。 public S ...
分类:
其他好文 时间:
2021-06-06 18:43:27
阅读次数:
0
思路: 动态规划+转移方程效率优化。 实现: 1 class Solution 2 { 3 public: 4 int stoneGameVIII(vector<int>& stones) 5 { 6 int n = stones.size(), sum = 0; 7 for (int i = 0; ...
分类:
其他好文 时间:
2021-06-02 15:41:54
阅读次数:
0
简介 看到这种题目立即推, 动态规划. 但是我列出的不是特别好的公式, 提供自己的公式和官方的公式. res 是 自己创建的动态规划数组. nums[i] 我这里是都会选择nums[i], 但是会递推前面两个. for(int i=2; i<nums.size(); i++){ for(int j ...
分类:
其他好文 时间:
2021-06-02 14:34:27
阅读次数:
0
这一题我最开始走到了思维误区,认为应该把输入先按0切分开来,然后再考虑负数的情况。这种思维倒是符合正常的思维模式,但是思考到分开之后大量的子数组段保存需要较大空间,而且处理起来很复杂,这时候就应该思考一些别的思路而不是继续优化它了。 动态规划的思想似乎在这道题的样子里若隐若现,可惜不是加和而是相乘, ...
分类:
编程语言 时间:
2021-06-02 14:03:51
阅读次数:
0
一、动态规划 当问题具有下列两个性质时,通常可以考虑使用动态规划来求解: 一个复杂问题的最优解由数个小问题的最优解构成,可以通过寻找子问题的最优解来得到复杂问题的最优解 子问题在复杂问题内重复出现,使得子问题的解可以被存储起来重复利用 马尔科夫决策过程具有上述两个属性:贝尔曼方程把问题递归为求解子问 ...
分类:
其他好文 时间:
2021-06-02 13:25:23
阅读次数:
0
1. 题目 给你一个整数数组 nums ,你可以对它进行一些操作。 每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1 和 nums[i] + 1 的元素。 开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数 ...
分类:
其他好文 时间:
2021-06-02 10:42:51
阅读次数:
0
之前为了求快,认为递归和动态规划是一类的,导致做了不少递归的题只能想到思路,但就是没法代码实现出来!!! 现在学习二叉树,我觉得对学习递归真的很有帮助! 二叉树的基础:遍历二叉树 二叉树遍历是基础,如果我们不能遍历二叉树,又如何对二叉树的节点进行操作呢? 二叉树的节点: /** * @author ...
分类:
其他好文 时间:
2021-05-24 14:38:57
阅读次数:
0
动态规划典型应用:背包问题 动态规划算法简要介绍: 动态规划算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获得最优解的处理算法。 动态规划算法与分治算法类似,其基本思想也是将待求解问题分解为若干个子问题,然后从这些子问题的解获得原问题的解,与分治算法不同的是,适用于动态规划算法的问题,经 ...
分类:
其他好文 时间:
2021-05-24 13:18:11
阅读次数:
0
简介 使用感觉类似动态规划的思路进行计算 code class Solution { public: int maxProfit(vector<int>& prices) { int inf = 1e9; int minPrice = inf; int maxProfit = 0; for(auto ...
分类:
其他好文 时间:
2021-05-24 13:09:51
阅读次数:
0
131. 分割回文串 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1: 输入:s = "aab" 输出:[["a","a","b"],["aa","b"]] 示例 2: 输入:s = "a" ...
分类:
其他好文 时间:
2021-05-24 10:33:05
阅读次数:
0