首先进行排序,然后贪心+dp
static bool cmp(vector<int>& p1, vector<int>& p2) {
return p1[0] < p2[0];
}
int findLongestChain(vector<vector<int>>& pairs) {
sort(pairs.begin(), pairs.end(), cmp);
int n = pairs.size(), ret = 0;
vector<int> dp;
for(int i=0; i<n; i++) {
dp.push_back(1);
for(int j=i-1; j>=0&&dp[i]==1; j--) {
if(pairs[j][1] < pairs[i][0]) dp[i] = dp[j]+1;
}
ret = max(ret, dp[i]);
}
return ret;
}