力扣 最长回文子串

ops/2025/3/4 21:37:52/

双指针,多维动态规划

题目

回文即顺着读跟倒着读都是一样的,然后又是一个找子串的问题,不难发现又是一道dp了。但是,这里维护的状态用到了双指针,找的分别是子串的首字母跟尾字母,因此也是个多维动态规划。外循环从后往前遍历,内循环从当前点往后遍历,为了方便更新子串的长度,因为要找出最长的即res,找到后即截取对应的字符串。维护的状态有dp[i][j],还有res长度。

时间复杂度: O(n^2),空间复杂度: O(n^2)。

java">class Solution {public static String longestPalindrome(String s) {int n = s.length();// dp[i][j] 表示 i到j是否是回文串boolean[][] dp = new boolean[n][n];int res = 0;String str = "";for (int i = n - 1; i >= 0; i--) {//j=i将每个单个字符dp赋为了truefor (int j = i; j < n; j++) {if (s.charAt(i) == s.charAt(j) && (j - i <= 1 || dp[i + 1][j - 1])) {dp[i][j] = true;res = Math.max(j - i, res);//更新resif (j - i >= res) {str = s.substring(i, j + 1);//左闭右开}}}}return str;}
}


http://www.ppmy.cn/ops/163131.html

相关文章

ArcGIS Pro实战技巧:灵活运用线条精准分割与裁切面要素

在地理信息系统&#xff08;GIS&#xff09;的应用中&#xff0c;我们经常需要对地图上的面要素进行精确的分割或裁切。 ArcGIS Pro作为一款强大的GIS软件&#xff0c;提供了多种工具来满足这一需求。 本文将详细介绍如何在ArcGIS Pro中使用线要素对面要素进行分割和裁切&…

docker关闭mysql端口映射的使用

需求 项目中的数据库为mysql&#xff0c;如果将端口映射到宿主机上&#xff0c;容易被工具扫描出&#xff0c;且随着国产化的进程推进&#xff0c;mysql将不被允许。为了提高安全性与满足项目需求&#xff0c;这里采用隐藏mysql端口方式&#xff0c;不映射宿主机端口&#xff…

jvm内存不够,怎么重新分配

目录 第一章、问题分析1.1&#xff09;报错提示1.2&#xff09;报错分析 第二章、解决方式2.1&#xff09;修改IDEA的JVM内存设置2.2&#xff09; 修改Spring Boot项目的JVM内存设置 友情提醒: 先看文章目录&#xff0c;大致了解文章知识点结构&#xff0c;点击文章目录可直接…

HTML + CSS 题目

1.说说你对盒子模型的理解? 一、是什么 对一个文档进行布局的时候&#xff0c;浏览器渲染引擎会根据标准之一的css基础盒模型&#xff0c;将所有元素表示为一个个矩形的盒子。 一个盒子由四个部分组成: content&#xff0c;padding&#xff0c;border&#xff0c;margin 下…

【中值滤波器(Median Filter)详解】

中值滤波器&#xff08;Median Filter&#xff09;详解 目录 中值滤波器&#xff08;Median Filter&#xff09;详解一. 定义二. 原理三. 特点四. 使用技巧五. MATLAB示例代码1、示例1&#xff1a;处理含有椒盐噪声的灰度图像2、示例2&#xff1a;处理含有高斯噪声的图像3、示例…

第十四届蓝桥杯:(二分算法)字串简写

这道题我们的做法是开两个vector&#xff0c;分别把a和b字符的下标存进去&#xff0c;然后遍历a字符&#xff0c;我们要求长度必须大于等于k&#xff0c;我们可以画个图&#xff0c;也就是说b的下标减a的下标必须大于等于k-1 也就是b的下标必须大于等于a的下标k-1 我们用二分找…

自动化测试无法启动(java.net.SocketException)

在运行测试代码,对浏览器进行自动化操作时,遇到了以下问题,添加依赖,编写了测试代码,但是程序无法运行 这个有两种原因(我使用的是谷歌浏览器): 网络问题: 因为需要从GitHub上下载对应包,所以有时候可能会出现网络问题,这个时候可以打开VPN之后,重新对程序进行启动 浏览器版本…

深入探究Python机器学习算法:无监督学习(聚类算法如 K-Means、DBSCAN,降维算法如 PCA、SVD)

文章目录 深入探究 Python 机器学习算法&#xff1a;无监督学习聚类算法K - Means聚类算法流程K值选择方法聚类结果的稳定性分析和评估方法 层次聚类算法原理和实现过程连接方法特点和适用场景可视化方法 DBSCAN密度聚类算法原理优势和局限性 降维算法主成分分析&#xff08;PC…