#include <vector>
class Solution {
public:
/**
将数组从小到进行排列,前面的长度一定小于等于后面的长度,从前往后更新长度即可,继承最长的可继承长度
*/
int maxLetters(vector<vector<int> >& letters) {
sort(letters.begin(), letters.end(),
[]( vector<int>& a, vector<int>& b) { //传入数组里的元素进行比较
if (a[0] == b[0])return a[1] > b[1];
return a[0] < b[0];
});
vector<int> dp(letters.size(), 1);
int maxlen = 1;
for(int i=1; i<letters.size(); i++){
for(int j=0; j<i; j++){
if(letters[i][0] > letters[j][0] && letters[i][1] > letters[j][1])
{
dp[i] = max(dp[i], dp[j]+1);
maxlen = max(maxlen, dp[i]);
}
}
}
return maxlen;
}
};