动态规划
MaxLeo928
随缘记录
展开
-
最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。原创 2023-03-06 20:51:37 · 72 阅读 · 0 评论 -
最长公共子序列
输出包括两行,第一行代表字符串str1,第二行代表str2。(1≤length(str1),length(str2)≤5000)时间复杂度O(n∗m)O(n*m)O(n∗m),空间复杂度O(n∗m)O(n*m)O(n∗m)。(n,m分别表示两个字符串长度)给定两个字符串str1和str2,输出两个字符串的最长公共子序列。如果最长公共子序列为空,则输出-1。输出一行,代表他们最长公共子序列。如果公共子序列的长度为空,则输出-1。"123456"和“12C4B6”都是最长公共子序列,任意输出一个。原创 2023-03-06 15:42:12 · 58 阅读 · 0 评论 -
最长递增子序列
给定数组arr,设长度为n,输出arr的最长递增子序列。参考我之前写的两篇关于对于动态规划的分析,这一题主要的思想还是用一个dp数组来记录以arr[i]结尾的最长不下降子序列长度以及其前序元素。输出两行,第一行包括一个正整数n(n原创 2023-03-03 18:35:03 · 149 阅读 · 0 评论 -
最大连续子序列和
要求当前元素为结尾的最长连续序列和,只有两种情况:第一种为以前一个元素为结尾的最长连续序列和的值大于0,则以当前元素为结尾的最长连续序列和=以前一个元素结尾的最长连续序列和+当前元素。第二种为以前一个元素为结尾的最长连续序列和的值小于等于0,则以当前元素为结尾的最长连续序列和=当前元素。原创 2023-03-02 15:46:07 · 700 阅读 · 0 评论 -
简单动态规划问题的基本方法
值得注意的是,一个问题必须拥有重叠子问题和最优子结构才能用动态规划解决。重叠子问题是指复杂问题是由重复进行的子问题来解决实现的,也就是重复一定的步骤才能完成目标问题;最优子结构是指所要求得的复杂问题的最优解,是能够由子问题的最优解构造的,也就是分解后的子问题的最优解决方案,是最后复杂问题最优解结构的一部分。原创 2023-03-02 14:43:13 · 85 阅读 · 0 评论