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

LeetCode 解题思路 47(最长回文子串、最长公共子序列)

在这里插入图片描述

解题思路:

  1. dp 数组的含义: dp[i][j] 是否为回文子串。
  2. 递推公式: dp[i][j] = s.charAt(i) == s.charAt(j) && dp[i + 1][j - 1]。
  3. dp 数组初始化: 单字符 dp[i][i] = true,双字符 dp[i][i + 1] = s.charAt(i) == s.charAt(i + 1)。
  4. 遍历顺序: 从 3 开始遍历,寻找最长回文子串。
  5. 打印 dp 数组

Java代码:

public class Solution {public String longestPalindrome(String s) {int n = s.length();boolean[][] dp = new boolean[n][n];int maxLen = 1;int start = 0;for (int i = 0; i < n; i++) dp[i][i] = true;for (int i = 0; i < n - 1; i++) {if (s.charAt(i) == s.charAt(i + 1)) {dp[i][i + 1] = true;maxLen = 2;start = i;}}for (int len = 3; len <= n; len++) {for (int i = 0; i <= n - len; i++) {int j = i + len - 1;if (s.charAt(i) == s.charAt(j) && dp[i + 1][j - 1]) {dp[i][j] = true;maxLen = len;start = i;}}}return s.substring(start, start + maxLen);}
}

复杂度分析:

  • 时间复杂度: O(n²)。
  • 空间复杂度: O(1)。
    在这里插入图片描述

解题思路:

  1. dp 数组的含义: 长度为 [0, i - 1] 的字符串 text1 与长度为 [0, j - 1] 的字符串 text2 的最长公共子序列为 dp[i][j]。
  2. 递推公式:
if (text1[i - 1] == text2[j - 1]) {dp[i][j] = dp[i - 1][j - 1] + 1;
} else {dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
}
  1. dp 数组初始化: dp[i][0] = 0,dp[0][j] = 0。
  2. 遍历顺序: 从小到大逐行遍历,确保左边和上边的 dp 数组有值。
  3. 打印 dp 数组

Java代码:

class Solution {public int longestCommonSubsequence(String text1, String text2) {int[][] dp = new int[text1.length() + 1][text2.length() + 1];for (int i = 1; i <= text1.length() ; i++) {char char1 = text1.charAt(i - 1);for (int j = 1; j <= text2.length(); j++) {char char2 = text2.charAt(j - 1);if (char1 == char2) {dp[i][j] = dp[i - 1][j - 1] + 1;} else {dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);}}}return dp[text1.length()][text2.length()];}
}

复杂度分析:

  • 时间复杂度: O(mn),其中 m 和 n 分别为 text1 和 text2 的长度。
  • 空间复杂度: O(mn)。
http://www.xdnf.cn/news/367669.html

相关文章:

  • SQL注入的绕过方式
  • 【人工智能学习之动作识别TSM训练与部署】
  • 通信阵列波导性能提升难?OAS 软件助力精准解决
  • 操纵杆支架加工工艺及钻3φ11孔夹具设计
  • TransPose: Keypoint Localization via Transformer(ICCV2021)
  • 【UEFN】用于可靠多模态情感分析的高效不确定性估计融合网络
  • ASCII码的快速记忆方法
  • 优雅草星云智控系统产品发布会前瞻:SNMP协议全设备开启指南-优雅草卓伊凡
  • 【传感器】代码——DHT11温湿度传感器
  • 企业如何选择靠谱的软件测试外包公司?
  • CSS实现图片垂直居中方法
  • rabbitmq学习笔记快速使用
  • ROS导航局部路径规划算法
  • 第十五节:图像形态学操作-形态学梯度
  • AIGC理论基础:大模型通识
  • Oracle OCP认证考试考点详解083系列14
  • Vue项目中实现自定义连线图
  • 硬件实操技巧记录
  • Edu教育邮箱2025年5月亲测有效
  • 解锁蜘蛛池 SEO 优化:网站流量增长的高效引擎
  • 初等数论--欧拉函数及其性质
  • TLS 加密通信介绍
  • 机器学习 期末考试题
  • 鞋样设计软件
  • 【库(Library)、包(Package)和模块(Module)解析】
  • iOS App 下架了无法下载 ? 推荐个软件——IPADown
  • 【时时三省】(C语言基础)二维数组举例
  • 什么是硅二极管温度传感器
  • OptiStruct实例:声振耦合超单元应用
  • wordpress自学笔记 第二节: 3种独立站商城横幅的制作