LeetCode题目记录-646. 最长数对链(C++代码实现)

Posted wyy_persist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode题目记录-646. 最长数对链(C++代码实现)相关的知识,希望对你有一定的参考价值。

题目链接:https://leetcode-cn.com/problems/maximum-length-of-pair-chain/

题目要求:

题目思路:

思路:
1.将数组按照数对的第二个元素升序排序;
2.然后定义两个指针l 和 r,使用while循环,判断r指针对应数对的第一元素是否大于l指针对应数对的第二个元素,如果是的话,更新l = r,然后令r++;res++;
3.最后返回res即可;

 C++代码实现:

class Solution 
public:

    static bool cmp(vector<int>& pair1,vector<int>& pair2)
        return pair1[1] < pair2[1];
    

    int findLongestChain(vector<vector<int>>& pairs) 
        int n = pairs.size();

        //先按照数对的第二个元素进行排序
        sort(pairs.begin(),pairs.end(),cmp);
        int res = 1;

        //for循环遍历
        int l = 0;
        int r = l + 1;

        while(r < n && l < r)
            if(pairs[l][1] < pairs[r][0])
                res ++;
                l = r;
            
            r++;
        

        return res;
    
;

AC截图:

 本题解仅作为个人复习查看使用,并无他用。 

以上是关于LeetCode题目记录-646. 最长数对链(C++代码实现)的主要内容,如果未能解决你的问题,请参考以下文章

646. 最长数对链

LeetCode 646 最长数对链[贪心 自定义排序] HERODING的LeetCode之路

每日一题646. 最长数对链

646. 最长数对链(LIS&贪心)

646. 最长数对链(LIS&贪心)

力扣646. 最长数对链 贪心法