leetcode 516. 最长回文子序列

2023.8.27

本题依旧使用dp算法做,可以参考 回文子串 这道题。**dp[i][j]定义为:子串s[i,j] 的最长回文子串。**直接看代码:

cpp 复制代码
class Solution {
public:
    int longestPalindromeSubseq(string s) {
        vector<vector<int>> dp(s.size(),vector<int>(s.size()));
        for(int i=s.size()-1; i>=0; i--)
        {
            for(int j=i; j<s.size(); j++)
            {
                if(s[i] == s[j])
                {
                    if(j-i<=1) dp[i][j] = j-i+1;
                    else dp[i][j] = dp[i+1][j-1]+2;
                }
                else dp[i][j] = max(dp[i][j-1],dp[i+1][j]);
            }
        }
        return dp[0][s.size()-1];
    }
};

附上草稿图以供参考:

相关推荐
人大博士的交易之路13 小时前
数据结构算法——python数据结构
开发语言·数据结构·python
stolentime13 小时前
通信题:洛谷P15942 [JOI Final 2026] 赌场 / Casino题解
c++·算法·洛谷·joi·通信题
初生牛犊不怕苦13 小时前
与AI一起学习《C专家编程》:数组与指针
c语言·学习·算法
Kk.080214 小时前
数据结构|排序算法(二) 冒泡排序
数据结构·算法·排序算法
沛沛rh4514 小时前
深入并发编程:从 C++ 到 Rust 的学习笔记
c++·笔记·学习·算法·rust
Kk.080214 小时前
数据结构|排序算法(二) 希尔排序
数据结构·算法·排序算法
AI医影跨模态组学15 小时前
NPJ Precis Oncol(IF=8)复旦大学肿瘤医院等团队:基于生境CT放射组学解析可切除非小细胞肺癌时空异质性预测新辅助化疗免疫治疗病理反应
大数据·人工智能·算法·医学·医学影像
Book思议-15 小时前
二叉树的递归遍历详解:前序、中序与后序
数据结构·算法·二叉树的递归遍历-前中后序
Demon--hx15 小时前
[LeetCode]100 链表-专题
算法·leetcode·链表