我是靠谱客的博主 美好黄蜂,最近开发中收集的这篇文章主要介绍LeetCode - 646 - Maximum Length of Pair Chain,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
You are given n
pairs of numbers. In every pair, the first number is always smaller than the second number.
Now, we define a pair (c, d)
can follow another pair (a, b)
if and only if b < c
. Chain of pairs can be formed in this fashion.
Given a set of pairs, find the length longest chain which can be formed. You needn't use up all the given pairs. You can select pairs in any order.
Example 1:
Input: [[1,2], [2,3], [3,4]] Output: 2 Explanation: The longest chain is [1,2] -> [3,4]
Note:
- The number of given pairs will be in the range [1, 1000].
给你一个pair对数组,若存在(a, b) (c, d) && b < c 那么就能构成一条链,求最长的链的长度
排序,遍历。时间复杂度O(nlgn),空间复杂度O(1)
class Solution {
public:
int findLongestChain(vector<vector<int>>& pairs) {
if (pairs.empty()) return 0;
sort(pairs.begin(), pairs.end(), cmp);
int cnt = 0;
int pre = INT_MIN;
for (int i = 0; i < pairs.size(); ++i) {
if (pairs[i][0] > pre) {
cnt++;
pre = pairs[i][1];
}
}
return cnt;
}
static bool cmp(vector<int> a, vector<int> b) {
if (a[1] == b[1])
return a[0] < b[0];
return a[1] < b[1];
}
};
最后
以上就是美好黄蜂为你收集整理的LeetCode - 646 - Maximum Length of Pair Chain的全部内容,希望文章能够帮你解决LeetCode - 646 - Maximum Length of Pair Chain所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复