动态规划问题。
思路:这里用到的思路其实也是以什么什么结尾的最大数,就跟最长递增序列是一个思路。
这里我们需要额外关注的一个问题就是对于以哪个数字结尾来说我们根据递增序列那个题的思路就行了;但是,这里要是连接的话是有条件的:它的头要比连接的序列的尾要大,所以在遍历的时候需要加上这样一个判断条件就行了。
有兴趣的话也可以去看看2023年的蓝桥杯B组的接龙数组,跟这道题是很一样的。
class Solution {
public:
int findLongestChain(vector<vector<int>>& pairs) {
int n=pairs.size();
sort(pairs.begin(),pairs.end());
vector<int>dp(n,1);
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(pairs[i][0]>pairs[j][1])
dp[i]=max(dp[i],dp[j]+1);
}
}
return dp[n-1];
}
};