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

2025年--Lc194-516. 最长回文子序列(动态规划在字符串的应用,需要二刷)--Java版

1.题目

在这里插入图片描述

2.思路

(1)dp[i][j]数组定义:字符串 s 的下标范围 [i,j] 内的最长回文子序列的长度.
边界情况,当字符串的长度为1的时候,都是回文子序列
(2)递推表达式:
1)当s[i]=s[j]时候,得到 [i+1,j−1] 内的最长回文子序列,在该子序列的首尾分别添加 s[i] 和 s[j],即可得到 s 的下标范围 [i,j] 内的最长回文子序列,因此 dp[i][j]=dp[i+1][j−1]+2;
2)当s[i]不等于s[j],s[i]和s[j]不能同时作为同一个回文子序列的首尾,所以最长的长度要从dp[i][j]=Math.max(dp[i+1][j],dp[i][j-1])
(3)遍历顺序
计算区间 [i, j] 且 i ≤ j,主对角线及其右上三角,
外层 i 从 n-1 → 0(从下往上)
内层 j 从 i+1 → n-1(从左往右)
因为我们要填右上区域,而在填 dp[i][j] 时,需要:

正下(i+1, j)

左下(i+1, j-1)

左(i, j-1)

这些格子都在当前格的下方或左方,
,dp[i+1][j-1] 的确在当前格的左下角,
但在计算顺序上,它属于“当前格的下方区域”,
因此我们要 自下而上 遍历,保证它先被填好。
例子

假设字符串:
索引: 0   1   2   3
字符: b   b   a   b
       j →0   1   2   3
i ↓  -----------------
0 |  [0,0] [0,1] [0,2] [0,3]
1 |        [1,1] [1,2] [1,3]
2 |              [2,2] [2,3]
3 |                    [3,3]

在这里插入图片描述

3.代码实现

class Solution {public int longestPalindromeSubseq(String s) {int n=s.length();//用 dp[i][j] 表示字符串 s 的下标范围 [i,j] 内的最长回文子序列的长度int[][] dp=new int[n][n];if(n<=1){return n;}for(int i=n-1;i>=0;i--){dp[i][i]=1;//单个字符串都是最长回文子序列char c1=s.charAt(i);for(int j=i+1;j<n;j++){char c2=s.charAt(j);if(c1==c2){dp[i][j]=dp[i+1][j-1]+2;}else{dp[i][j]=Math.max(dp[i+1][j],dp[i][j-1]);}}}//返回从0到n-1的最长回文子序列的长度return dp[0][n-1];}
}
http://www.dtcms.com/a/490880.html

相关文章:

  • [HTML]播放wav格式音频
  • IntentService 的应用场景和使用方式?
  • 【开题答辩实录分享】以《基于大数据技术的二手车交易数据分析与设计》为例进行答辩实录分享
  • 基础开发工具(上)
  • k8s lngress与安全机制
  • 大模型微调(一):有监督微调与困惑度
  • 网站建设步骤图片素材WordPress点击出现爱心
  • 《从零搭建现代 Android 模块化架构项目(2025 最新实践)》
  • 深圳燃气公司有哪些大型网站和小企业站优化思路
  • AWS CloudWatch Logs Insights:实时日志分析,让服务器问题无所遁形
  • 云服务器与传统服务器租用的核心差异解析(云服务器与服务器租用之间的区别在哪里?)
  • NewStarCTF2025-Week2-Web
  • 自己做网站需要做服务器如何用dw制作网页框架
  • 使用Deepseek解析PDF文件
  • 跨链协同制造中的服务博弈与激励机制
  • 在半导体制造中什么是晶圆退火工艺?
  • 赋能高效电池制造:圆柱电芯组合式双面自动点焊技术
  • 【项目】基于多设计模式下的同步异步日志系统 - 项目介绍与前置知识
  • saas建站和开源建站的区别哈尔滨建站怎么做
  • 鸿蒙Harmony实战开发教学(No.4)-RichText组件基础到高阶介绍篇
  • 外包网站价格介绍西安网页设计
  • yolov3代码详解
  • 第六篇移动端知识,vw/vmin适配方案...
  • kubuntu24.04 换国内ustc源
  • 查询计划:EXPLAIN解读,SQL性能怎样精准调优?
  • 大形电商网站开发费用广州seo关键词优化费用
  • 网站做迅雷下载链接网页制作软件
  • Flink ProcessFunction 与低层级 Join 实战手册:多流广告计费精确去重
  • jQuery Mobile 按钮图标:设计与实现指南
  • SQL MID() 函数详解与使用指南