• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

区间型动态规划入门

武飞扬头像
wfff11
帮助1

状态表示与题目特点

题目会存在Subarray/Substring相关的字眼
用dp[i][j]表示数组/字符串中i,j这一段区间的最优值/可行性/方案总数
大的Subarray/Substring依赖于小的Subarray/Substring
dp[i][j]=max/min/sum/or(dp[i,j之内更小的若干区间])

判断回文子串

O(n^2)的算法中需要检测任意一段字符串是不是回文串

动规四要素
state:dp[i][j]表示i,j这一段是不是回文串
function:dp[i][j] = (dp[i 1][j-1] and s[i]==s[j])
initialization:dp[i][i]=true,dp[i][i 1]==(s[i]==s[i 1])
answer:dp[x][y]对于任意想要检测是否是回文串的下标范围x-y


前面依赖于后面,后面还未算到
解决方法(一):i倒着循环,j正着循环
解决方案(二):先循环区间长度,在循环区间起点,再计算终点j=i length-1;

给你一个字符串 s,找到 s 中最长的回文子串。

class Solution {
   
public:
    string longestPalindrome(string& s) {
   
        if(s.

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggbifb
系列文章
更多 icon
同类精品
更多 icon
继续加载