动态规划中级教程 646. Maximum Length of Pair Chain
2017-08-03 10:10
363 查看
You are given
smaller than the second number.
Now, we define a pair
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:
Note:
The number of given pairs will be in the range [1, 1000].
说给我们一串链,找到最长的可以连接的链,条件是 【i】。frist 》 【j】。second
直接分析
【1,2】
dp【0】=1
【1,2】,【2,3】
dp【1】=1
【1,2】,【2,3】,【3,4】
dp【2】=dp【0】+1
写到这里大家可以发现这跟LIS基本是一样的这里已经可以写出状态转移方程
dp【i】=max(dp【i】,dp【j】+1);
npairs 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].
说给我们一串链,找到最长的可以连接的链,条件是 【i】。frist 》 【j】。second
直接分析
【1,2】
dp【0】=1
【1,2】,【2,3】
dp【1】=1
【1,2】,【2,3】,【3,4】
dp【2】=dp【0】+1
写到这里大家可以发现这跟LIS基本是一样的这里已经可以写出状态转移方程
dp【i】=max(dp【i】,dp【j】+1);
class Solution { public: int findLongestChain(vector<vector<int>>& pairs) { if(pairs.size()==0 )return 0; sort(pairs.begin(),pairs.end()); int dp[pairs.size()]; for(int i=0;i<pairs.size();i++) { dp[i]=1; } int ans=1; for(int i=1;i<pairs.size();i++) { for(int j=0;j<i;j++) { if(pairs[i][0]>pairs[j][1]) { dp[i]=max(dp[i],dp[j]+1); ans=max(ans,dp[i]); } } } return ans; } };
相关文章推荐
- 动态规划中级教程(leetcode)152.Maximum Product Subarray
- 动态规划中级教程 279. Perfect Squares
- 动态规划中级教程 322. Coin Change
- 动态规划中级教程 343. Integer Break
- 动态规划中级教程 377. Combination Sum IV
- 动态规划中级教程300.Longest Increasing Subsequence
- iOS AutoLayout自动布局中级开发教程(2)-等宽等高等中心
- Android 中级教程之------Android MediaPlayer播放mp3的实例!
- iOS AutoLayout自动布局中级开发教程(2)-初识autolayout
- 动态规划中级教程。 650. 2 Keys Keyboard
- 动态规划中级教程 96. Unique Binary Search Trees
- 【Android中级教程(三)之不同Activity之间的数据传递---Bundle对象的使用】的改进!
- Android中级教程之----Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)!
- iKcamp出品|全网最新|微信小程序|基于最新版1.0开发者工具之初中级培训教程分享
- //九度教程94 动态规划之不容易系列之一
- Android中级教程(一)之----手机页面的转换setContentView的应用 转
- Ogre中级教程(二):射线场景查询及基础鼠标用法
- HTML中级教程 - 1.关于“Span”和“Div”的使用
- Android中级教程(二)之调用另一个Activity---Intent对象的使用!
- 中级驱动教程四