1
class Solution {
2
public:
3
int maxEnvelopes(vector<vector<int>> &envelopes) {
4
int n = envelopes.size();
5
sort(envelopes.begin(), envelopes.end(),
6
[](auto &l, auto &r) { return l[0] == r[0] ? l[1] > r[1] : l[0] < r[0]; });
7
int len = 0;
8
for (auto &cur : envelopes) {
9
if (len == 0 || envelopes[len - 1][1] < cur[1])
10
envelopes[len++] = cur;
11
else
12
*lower_bound(envelopes.begin(), envelopes.begin() + len, cur,
13
[](auto &l, auto &r) { return l[1] < r[1]; }) = cur;
14
}
15
return len;
16
}
17
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0