LeetCode646. Maximum Length of Pair Chain——动态规划

文章目录

一、题目

You are given an array of n pairs pairs where pairs[i] = [lefti, righti] and lefti < righti.

A pair p2 = [c, d] follows a pair p1 = [a, b] if b < c. A chain of pairs can be formed in this fashion.

Return the length longest chain which can be formed.

You do not need to use up all the given intervals. You can select pairs in any order.

Example 1:

Input: pairs = [[1,2],[2,3],[3,4]]

Output: 2

Explanation: The longest chain is [1,2] -> [3,4].

Example 2:

Input: pairs = [[1,2],[7,8],[4,5]]

Output: 3

Explanation: The longest chain is [1,2] -> [4,5] -> [7,8].

Constraints:

n == pairs.length

1 <= n <= 1000

-1000 <= lefti < righti <= 1000

二、题解

cpp 复制代码
class Solution {
public:
    static bool cmp(vector<int>& a,vector<int>& b){
        return a[0] < b[0];
    }
    int findLongestChain(vector<vector<int>>& pairs) {
        int n = pairs.size(),len = 0;
        sort(pairs.begin(),pairs.end(),cmp);
        vector<int> ends(n,0);
        for(int i = 0;i < n;i++){
            int index = bs(ends,len,pairs[i][0]);
            if(index == -1) ends[len++] = pairs[i][1];
            else ends[index] = min(ends[index],pairs[i][1]);
        }
        return len;
    }
    int bs(vector<int>& ends,int len,int num){
        int l = 0,r = len - 1,res = -1;
        while(l <= r){
            int mid = (l + r) / 2;
            if(ends[mid] >= num){
                res = mid;
                r = mid - 1;
            }
            else l = mid + 1;
        }
        return res;
    }
};
相关推荐
2501_94132972几秒前
【目标检测】YOLO13-C3k2-PPA改进算法实现门检测与识别实战指南_1
人工智能·算法·目标检测
e***98572 分钟前
C++跨平台开发的5大核心挑战与突破
开发语言·c++
楚来客2 分钟前
AI基础概念之十一:CNN算法的基本原理
人工智能·算法·cnn
企业对冲系统官3 分钟前
价格风险管理平台审批角色配置与权限矩阵设计
大数据·运维·开发语言·前端·网络·数据库·矩阵
listhi5204 分钟前
空间机器人动力学正逆解及遗传算法路径规划(MATLAB实现)
算法·matlab·机器人
guygg887 分钟前
MATLAB利用CVX求解半定规划(SDP)波束成形矩阵的设计与实现
开发语言·matlab·矩阵
橘颂TA7 分钟前
【剑斩OFFER】算法的暴力美学——leetCode 662 题:二叉树最大宽度
c++·算法·结构与算法
乾元9 分钟前
专栏案例合集:AI 网络工程交付的完整闭环—— 从 Demo 到 Production 的工程化方法论
运维·开发语言·网络·人工智能·架构·自动化
zl_vslam9 分钟前
SLAM中的非线性优-3D图优化之绝对位姿SE3约束左扰动(十六)
人工智能·算法·计算机视觉·3d
MSTcheng.9 分钟前
【C++】开放定址法实现哈希表!
c++·缓存·stl·散列表·哈希