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];
    }
};
相关推荐
一切尽在,你来3 分钟前
C++ 零基础教程 - 第 5 讲 变量和数据类型
开发语言·c++
重生之后端学习19 分钟前
146. LRU 缓存
java·数据结构·算法·leetcode·职场和发展
王老师青少年编程20 分钟前
2022信奥赛C++提高组csp-s复赛真题及题解:假期计划
c++·真题·csp·信奥赛·csp-s·提高组·假期计划
程曦曦21 分钟前
原地删除有序数组重复项:双指针法的艺术与实现
数据结构·算法·leetcode
阿猿收手吧!31 分钟前
【C++】constexpr动态内存与双模式革命
开发语言·c++
云深处@1 小时前
【C++】哈希表
开发语言·c++
weixin_452159551 小时前
模板编译期条件分支
开发语言·c++·算法
啊我不会诶1 小时前
蓝桥杯练习 混乱的数组
c++·蓝桥杯
2501_941148151 小时前
C++ map / multimap 保姆级教程
java·开发语言·c++
iAkuya1 小时前
(leetcode)力扣100 60单词搜索(回溯)
算法·leetcode·职场和发展