LeetCode 646. Maximum Length of Pair Chain [Medium]
2017-12-14 21:33
423 查看
原题地址
题目内容
题目分析
题目的意思为找出能相连的最长串的长度,(a,b),(c,d),因为b < c,所以他们是能相连的。采用动态规划的方法,首先对原来的pair数组进行排序。用dp记录每个pair能形成链的最大长度。设一个变量temp,如果【pairs[j][1]】小于【pairs[i][0]】,代表pairs(i)能连多一个pair,那么temp=dp[j]+1,否则temp=dp[j],再将temp与dp[i]相比较,看新的子串是否长于原来的链的长度。最后返回dp里面值最大的值。
代码实现
class Solution { public: int findLongestChain(vector<vector<int>>& pairs) { sort(pairs.begin(),pairs.end(),cmp); int dp[pairs.size()] = {1}; for(int i = 0; i < pairs.size(); i++){ for(int j = 0; j < i; j++){ dp[i] = max(dp[i], pairs[j][1] < pairs[i][0] ? dp[j]+1:dp[j]); } } int max = 0; for(int i = 0; i < pairs.size(); i++){ if(max < dp[i]){ max = dp[i]; } } return max; } private: static bool cmp(vector<int>& a, vector<int>& b){ return a[0] < b[0]; } };
相关文章推荐
- 【LeetCode】646.Maximum Length of Pair Chain(Medium)解题报告
- Leetcode 646. Maximum Length of Pair Chain 找最长链 解题报告
- LeetCode Maximum Length of Pair Chain
- LeetCode 646 Maximum Length of Pair Chain (贪心)
- LeetCode - Maximum Length Of Pair Chain(算法)
- LeetCode 646 Maximum Length of Pair Chain(贪心)
- [Leetcode 24, Medium] Swap Nodes in Pair
- leetcode - 646. Maximum Length of Pair Chain 【贪心 + 快排的应用+ 任务调度问题】
- [leetcode] 646. Maximum Length of Pair Chain
- [LeetCode] 646. Maximum Length of Pair Chain
- LeetCode 646. Maximum Length of Pair Chain
- leetcode 646. Maximum Length of Pair Chain
- [LeetCode] Maximum Length of Pair Chain 链对的最大长度
- leetcode_646. Maximum Length of Pair Chain ? 待解决
- LeetCode646. Maximum Length of Pair Chain
- leetcode 646. Maximum Length of Pair Chain 最长连续区间 + 排序 + 贪心算法
- LeetCode - 646 - Maximum Length of Pair Chain
- Leetcode(W12):646.Maximum Length of Pair Chain
- [Leetcode] 646. Maximum Length of Pair Chain 解题报告
- [LeetCode] 646. Maximum Length of Pair Chain