力扣646. 最长数对链

动态规划

  • 思路:
    • 思路与 力扣354. 俄罗斯套娃信封问题 类似
    • 将序列进行排序,然后假设 dpi 为第 i 个元素的最长数对链个数;
    • 则其状态转移方程:
      • 第 i 个元素之前的某一个元素(假设是下标是 j),如果满足:
        • pairsj1 < pairsi0,且
        • dpj 是所有数对链最长的;
      • 则:dpi = dpj + 1
cpp 复制代码
class Solution {
public:
    int findLongestChain(vector<vector<int>>& pairs) {
        int n = pairs.size();
        std::sort(pairs.begin(), pairs.end());

        std::vector<int> dp(n, 1);
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < i; j++) {
                if (pairs[i][0] > pairs[j][1]) {
                    dp[i] = std::max(dp[i], dp[j] + 1);
                }
            }
        }

        return dp[n - 1];
    }
};

相关推荐
青少儿编程课堂几秒前
迪杰斯特拉(Dijkstra)算法:单源最短路与赛场路线规划
c++·python·算法·bfs·信息学竞赛
不会就选b9 分钟前
算法日常・每日刷题--<动态规划>19
算法·leetcode·职场和发展
考研保研资料分享33 分钟前
新闻传播保研经验:中传预推免面试、广告学代表作与实习准备(2025)
面试·职场和发展
没有钱的钱仔1 小时前
协方差矩阵含义
算法·机器学习·矩阵
垆边人似月.2 小时前
华为机试题 :和为 K 的子数组个数
算法·leetcode·华为
三*一2 小时前
优化修整算法
前端·javascript·算法
达子6662 小时前
RUST 图解 第 3 章:通用编程概念(Common Programming Concepts)
开发语言·算法·rust
夏幻灵2 小时前
每日一题:LeetCode 165:比较版本号
算法·leetcode·职场和发展
道尔柯南2 小时前
C++ 面向对象编程入门:类和对象(上)
开发语言·c++·算法