Russian Doll Envelopes
Thoughts
Code
/*
* @lc app=leetcode id=354 lang=cpp
*
* [354] Russian Doll Envelopes
*/
class Solution {
public:
int maxEnvelopes(vector<vector<int>>& envelopes) {
sort(envelopes.begin(), envelopes.end(), [](const auto& a, const auto& b) {
return a[0] < b[0] || (a[0] == b[0] && a[1] > b[1]);
});
vector<int> tails;
for (const auto &e : envelopes) {
auto iter = lower_bound(tails.begin(), tails.end(), e[1]);
if (iter == tails.end()) {
tails.push_back(e[1]);
} else {
*iter = e[1];
}
}
return tails.size();
}
};
Analysis
Last updated