C++ | Leetcode C++题解之第516题最长回文子序列

题目:

题解:

cpp 复制代码
class Solution {
public:
    int longestPalindromeSubseq(string s) {
        int n = s.length();
        vector<vector<int>> dp(n, vector<int>(n));
        for (int i = n - 1; i >= 0; i--) {
            dp[i][i] = 1;
            char c1 = s[i];
            for (int j = i + 1; j < n; j++) {
                char c2 = s[j];
                if (c1 == c2) {
                    dp[i][j] = dp[i + 1][j - 1] + 2;
                } else {
                    dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);
                }
            }
        }
        return dp[0][n - 1];
    }
};
相关推荐
Ivanqhz几秒前
linearize:控制流图(CFG)转换为线性指令序列
开发语言·c++·后端·算法·rust
2401_873204653 分钟前
基于C++的区块链实现
开发语言·c++·算法
Frostnova丶3 分钟前
LeetCode 3546. 等和矩阵分割
算法·leetcode·矩阵
ShineWinsu7 分钟前
对于Linux:基础开发工具(vim、gcc/g++)的介绍
linux·运维·服务器·c++·面试·编辑器·vim
2301_7765087217 分钟前
模板代码优化策略
开发语言·c++·算法
暮冬-  Gentle°20 分钟前
C++中的空对象模式变体
开发语言·c++·算法
m0_5793936621 分钟前
C++中的命令模式
开发语言·c++·算法
汉克老师24 分钟前
GESP5级C++考试语法知识(九、二分算法(一))
c++·算法·二分算法·gesp5级·gesp五级
2401_8796938729 分钟前
C++跨平台开发实战
开发语言·c++·算法
浅念-29 分钟前
Linux 基础命令与核心知识点
linux·数据结构·c++·经验分享·笔记·算法·ubuntu