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];
    }
};
相关推荐
垆边人似月.35 分钟前
华为机考题:最小代价爬楼梯
c语言·c++
可涵不会debug43 分钟前
C++ std::bind 实战教程:线程池、回调场景全覆盖
linux·开发语言·c++
yi0111 小时前
DAY17: LeetCode 139|单词拆分:从“把单词删掉”到用 DP 记录合法切口
人工智能·笔记·python·算法·leetcode·动态规划
垆边人似月.2 小时前
华为机考题:二叉树的最大路径和
c语言·c++
2601_962218612 小时前
深入理解C++中的thread_local线程局部变量的应用
开发语言·c++
无名猿2 小时前
C++ lambda 捕获列表详解:值捕获、引用捕获、初始化捕获与悬垂引用
c++·现代c++·语法基础·踩坑记录
lengxuenong3 小时前
枚举例题分析
c++·算法·青少年编程
繁华的地方不一定留下你的脚印3 小时前
C++线程如何安全停止与唤醒:std::jthread、stop_token与condition_variable
开发语言·c++
Navigator_Z3 小时前
LeetCode //C - 1269. Number of Ways to Stay in the Same Place After Some Steps
c语言·算法·leetcode
沫璃染墨4 小时前
《从零入门Linux系统篇(五十一):线程篇·四——pthread线程库详解:从线程创建到终止与分离》
linux·运维·服务器·开发语言·c++·系统架构·线程