当前位置: 首页 > news >正文

关于动态规划【力扣516.最长回文子序列的想法】

1、动规五部曲

(本题是代码随想录关于动态规划的最后一道题目,所以回看一下动态规划的操作)

第一步:dp数组本身的含义

第二步:递推关系

第三步:dp数组初始化

第四步:遍历顺序

第五步:打印dp数组(用于debug)

2、【dp数组本身的含义】

大部分时候,dp数组本身的含义都是通过题目的问题来确定的。

// 例如本题问的是最长子序列长度,那dp数组本身的含义就是从i到j的最长子序列长度为dp[i][j]

但是也有特殊情况

// 比如上一题(力扣647.回文字串)是根据题目的主语:回文字串的定义来确定。回文字串的定义是从前往后读和从后往前读是一样的,即从中间开始左右两边是对称的。

【我的总结】dp数组本身的含义优先用题目的问题,其次用题目的主语

(如果用题目的问题作为“dp数组本身的含义”不好找递推关系再用题目的主语)

3、【递推关系】

递推关系就要根据实际情况、脚踏实地、一步一步的具体分析

// 比如这题,就要分析头和尾相同的话,状态从哪里转移过来;不同的话,状态可能从哪里过来,如果可能从几个地方过来,那取最大值还是取最小值。每一步的分析都要切合题目实际要求

【我的总结】要找递推关系,具体问题具体分析

4、【dp数组初始化】

在初始化dp数组之前,我们要先把递推关系思考出来,然后看一下递推关系的根在哪里。

就是递推关系必须要有一个什么起源,最开始需要什么东西,才可以一直往外推

// 比如本题,递推公式一直回去。i和j会一直往中间移动,递推公式一直回去,最后都会回到i和j相等的时候。

(例1,如下图所示)

// 溯源后,找到递推关系的最开始的起源地

(例2,如下图所示)

// 溯源后,找到递推关系的最开始的起源地

// 所以说i=j的地方就是发源地

所以本题的dp数组初始化如下图所示

【我的总结】要初始化什么根据递推关系的根来确定

5、【遍历顺序】

动态规划的题目都是有一个很明显的状态转移的,所以可以利用状态转移的方向,

也就是递推关系的推导方向来判断遍历顺序

(这就是为什么在动规五部曲里,递推关系的思考在dp数组初始化和遍历顺序之前)

(同样的最后面返回值的确定也跟递推关系有关系)

例如本题的递推关系的推导方向如下图所示(借用代码随想录的图)

要计算出dp[i][j]需要先有左、左下、下三个地方的值,所以遍历顺序从最后一行开始遍历,从下往上,从左往右。

【我的总结】遍历顺序根据递推关系的推导方向来确定

6、【返回值】

就是代码的最后一个部分,return ......

// 这部分也根据递推关系判断

// 有的要用dp数组左下角,有的要用dp数组右下角,有的要用dp数组右上角,有的要用dp数组里的最大值

// 同样的,去看递推关系的推导方向,看一下一直往后推会去哪里

// 比如本题的递推关系就会一直推向右上角,那么返回值就在dp数组的右上角

// 所以返回dp[0][s.size()-1];

【我的总结】返回什么看递推关系

7、【我的疑问】 递推关系为什么不是dp[i-1][j+1]+2?

因为dp[i-1][j+1]表示的是更大的外部区间

http://www.jsqmd.com/news/1169590/

相关文章:

  • 【Midjourney参数黄金组合】:20年AI图像工程师亲测的12个必调参数与出图成功率提升300%实录
  • 突破苹果限制:用OpenCore Legacy Patcher让老旧Mac焕发新生
  • PZMoneyPrinterTurbo:用AI大模型一键生成高清短视频,告别传统视频制作的三大痛点
  • 如何用Mobile-Agent构建自我进化的移动设备智能助手:完整解析
  • 易溶解餐巾纸哪家性价比高:联盛森宝服务周全 - MXyuyu
  • 2026北京梵克雅宝回收哪家靠谱?毓典全国连锁、30+门店综合对比指南 - 旧奢新值
  • TI WEBENCH 滤波器设计工具 2024版:5步完成9阶Chebyshev低通滤波器设计
  • 三伏贴不用排队跑医院!居家自制配方 + 禁忌,一次说清
  • 156.模块化 FB 架构交通灯项目|扫描周期优化、数据类型溢出避坑实战
  • 如何用Wonder3D快速创建3D模型:5步完成高质量3D转换终极指南
  • 苹果起诉OpenAI窃取机密,昔日合作伙伴缘何对簿公堂?
  • ChatGPT-o1推理模型:从Transformer-XL到o1专属Mixture-of-Reasoning架构,8项核心参数对比与LLM推理范式迁移路线图
  • 【Claude+Search Console深度联动】:实时诊断SEO内容健康度的5维评分模型(附可落地的JSON Schema模板)
  • 瓯海海鲜探店必打卡榜单 苍南人家活鲜食材深度测评 - 资讯快报
  • 亲身到店探访杭州亨得利官方名表服务中心|官方热线及门店地址(2026年7月更新) - 亨得利官方
  • 深入解析B站用户动态API:调用限制、参数详解与工程化实践
  • Windows本地Copilot指令模板实战:让AI遵守你的编码规范
  • Trivy集成CI/CD流程:自动化安全检测的最佳实践
  • Unity3D高亮系统:HighlightingSystem插件原理与实战应用
  • Cursor、Copilot、Claude Code 怎么选
  • 2026年GEO优化平台横向评测:覆盖、效果、服务全维度对比
  • Windows安卓应用安装器:免模拟器3步快速部署方案
  • 大模型全链路开发文档
  • 157.保姆级 TIA 教程|从继电器电路到 ST 代码,一步搞定电机换向控制
  • STM32F103 DHT11单总线协议解析:从18ms唤醒到40位数据校验的5个关键时序
  • ChatGPT Work来了:和普通ChatGPT、Codex有什么区别?
  • 东南大学916考研:数据结构与计网6-12月复习规划,附3轮复习时间表
  • QY2转MP3:从华为/QQ音乐加密格式到通用播放,5种技术方案完全解析
  • 缺少dll组件?微软常用运行库+DirectX修复,一键修复dll组件!
  • ChatGPT写法律意见书真的合法吗?资深律所技术合规官亲授5层人工复核框架