力扣646. 最长数对链

动态规划

  • 思路:
    • 思路与 力扣354. 俄罗斯套娃信封问题 类似
    • 将序列进行排序,然后假设 dp[i] 为第 i 个元素的最长数对链个数;
    • 则其状态转移方程:
      • 第 i 个元素之前的某一个元素(假设是下标是 j),如果满足:
        • pairs[j][1] < pairs[i][0],且
        • dp[j] 是所有数对链最长的;
      • 则:dp[i] = dp[j] + 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];
    }
};

相关推荐
我能坚持多久6 分钟前
【初阶数据结构09】——对堆用法的深入刨析
数据结构·算法
kaikaile19958 分钟前
基于PCNN和NSCT的图像融合MATLAB实现
开发语言·图像处理·算法·matlab
Zik----9 分钟前
cs研究生面试机试题(持续更新)
算法
12315668018 分钟前
PAT 1017 A除以B
c语言·数据结构·算法·pat考试
努力学算法的蒟蒻25 分钟前
day112(3.14)——leetcode面试经典150
面试·职场和发展
芯片-嵌入式26 分钟前
具身智能(2):OpenExplorer下的模型量化
人工智能·深度学习·算法
Yusei_052327 分钟前
C++14入门
c++·算法
YLXA35 分钟前
1.helle_cuda学习
linux·学习·算法
Storynone38 分钟前
【Day21】LeetCode:93. 复原IP地址,78. 子集,90. 子集 II
python·算法·leetcode
ab15151743 分钟前
3.14二刷基础93 94 83 98 99 完成进阶40 43
算法