leetcode-646:最长数对链

简介: leetcode-646:最长数对链

题目

题目连接

给出 n 个数对。 在每一个数对中,第一个数字总是比第二个数字小。

现在,我们定义一种跟随关系,当且仅当 b < c 时,数对(c, d) 才可以跟在 (a, b) 后面。我们用这种形式来构造一个数对链。

给定一个数对集合,找出能够形成的最长数对链的长度。你不需要用到所有的数对,你可以以任何顺序选择其中的一些数对来构造。

示例:

输入:[[1,2], [2,3], [3,4]]
输出:2
解释:最长的数对链是 [1,2] -> [3,4]

解题

方法一:排序+贪心

写法一:按照第一个数排序

按照第一个数字进行排序

如果满足条件,那么res++,更新pre

如果不满足条件,那么pre要取第二个数最小的,这样更好满足后面的pair (贪心)

class Solution {
public:
    int findLongestChain(vector<vector<int>>& pairs) {
        int res=1;
        sort(pairs.begin(),pairs.end(),[](vector<int>& a,vector<int>&b){
            return a[0]<b[0];
        });
        int pre=pairs[0][1];
        for(int i=1;i<pairs.size();i++){
            if(pairs[i][0]>pre){
                res++;
                pre=pairs[i][1];
            }else{
                pre=min(pre,pairs[i][1]);//贪心:选第二个数比较小的
            }
        }
        return res;
    }
};

写法二:按照第二个数进行排序

class Solution {
public:
    int findLongestChain(vector<vector<int>>& pairs) {
        int res=1;
        sort(pairs.begin(),pairs.end(),[](vector<int>& a,vector<int>&b){
            return a[1]<b[1];
        });
        int pre=pairs[0][1];
        for(int i=1;i<pairs.size();i++){
            if(pairs[i][0]>pre){
                res++;
                pre=pairs[i][1];
            }
        }
        return res;
    }
};
相关文章
|
负载均衡 网络协议 安全
负载均衡4层和7层区别
所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡
|
自然语言处理 Unix Linux
字符编码问题之UTF-16和UCS-2的关系如何解决
字符编码问题之UTF-16和UCS-2的关系如何解决
260 1
|
人工智能 API Python
ChatGPT 插件开发
本教程旨在帮助您掌握ChatGPT API的基本使用方法,包括应用开发、代码分析、插件开发及专属领域模型应用等。通过学习,您将为未来的人工智能应用开发打下坚实基础。教程包含官方文档介绍、环境搭建步骤及Python示例代码,助您快速上手。请注意,API调用需收费,初始提供5美元免费额度。
|
存储 小程序
数据存储,详细讲解
数据存储,详细讲解
Netty(三)之数据之粘包拆包
Netty(三)之数据之粘包拆包
130 0
Netty(三)之数据之粘包拆包
|
XML 前端开发 Java
搭建简易SpringFrame-ioc框架
搭建简易SpringFrame-ioc框架
|
JavaScript 前端开发 API
VUE实现一个分页组件
分页是WEB开发中很常用的功能,尤其是在各种前后端分离的今天,后端API返回数据,前端根据数据的count以及当前页码pageIndex来计算分页页码并渲染到页面上已经是一个很普通很常见的功能了。从最开始的jquery时代到现在的各种各样的前端框架时代,分页功能都是必不可少的。
1916 0
|
15天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾