Day 60 | 动态规划 647. 回文子串 、 516.最长回文子序列 、动态规划总结篇

647. 回文子串

题目
文章讲解
视频讲解

java 复制代码
class Solution {
    public int countSubstrings(String s) {
        char[] chars = s.toCharArray();
        int len = chars.length;
        boolean[][] dp = new boolean[len][len];
        int result = 0;
        for (int i = len - 1; i >= 0; i--) {
            for (int j = i; j < len; j++) {
                if (chars[i] == chars[j]) {
                    if (j - i <= 1) { // 情况一 和 情况二
                        result++;
                        dp[i][j] = true;
                    } else if (dp[i + 1][j - 1]) { //情况三
                        result++;
                        dp[i][j] = true;
                    }
                }
            }
        }
        return result;
    }
}

516.最长回文子序列

题目
文章讲解
视频讲解

java 复制代码
public class Solution {
    public int longestPalindromeSubseq(String s) {
        int len = s.length();
        int[][] dp = new int[len + 1][len + 1];
        for (int i = len - 1; i >= 0; i--) { // 从后往前遍历 保证情况不漏
            dp[i][i] = 1; // 初始化
            for (int j = i + 1; j < len; j++) {
                if (s.charAt(i) == s.charAt(j)) {
                    dp[i][j] = dp[i + 1][j - 1] + 2;
                } else {
                    dp[i][j] = Math.max(dp[i + 1][j], Math.max(dp[i][j], dp[i][j - 1]));
                }
            }
        }
        return dp[0][len - 1];
    }
}

动态规划总结篇

文章讲解

相关推荐
CHANG_THE_WORLD21 分钟前
if条件语句 三目运算符 汇编分析
汇编·算法·条件语句·if 语句·汇编分析·条件语句汇编分析
tumu_C22 分钟前
无用知识研究:在trailing return type利用decltype,comma operator在对函数进行sfinae原创 [二]
开发语言·c++·算法
web安全工具库28 分钟前
告别刀耕火种:用 Makefile 自动化 C 语言项目编译
linux·运维·c语言·开发语言·数据库·算法·自动化
海蓝可知天湛1 小时前
利用Genspark自定义智能体:算法竞赛测试数据反推与生成工具
算法·aigc
BothSavage1 小时前
Qwen3-VL-8B-Instruct推理测试transformer+sglang双版本
算法
尤超宇1 小时前
YOLOv3 目标检测算法核心技术
算法·yolo·目标检测
cyclel1 小时前
散列表的小想法
算法
Code小翊2 小时前
堆的基础操作,C语言示例
java·数据结构·算法
余俊晖2 小时前
如何让多模态大模型学会“自动思考”-R-4B训练框架核心设计与训练方法
人工智能·算法·机器学习
Emilia486.2 小时前
【Leetcode&nowcode&数据结构】顺序表的应用
数据结构·算法·leetcode