题目链接: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;
}
};