Hard
Minimum Number of Increasing Subsequence to Be Removed — C++
Full explanation · Time O(nlogn) · Space O(n)
// Time: O(nlogn)
// Space: O(n)
// binary search, longest increasing subsequence, lis
class Solution {
public:
int minOperations(vector<int>& nums) {
const auto& longest_non_increasing_subsequence = [](const auto& arr) {
vector<int> result;
for (const auto& x : arr) {
auto it = upper_bound(begin(result), end(result), -x);
if (it == end(result)) {
result.emplace_back(-x);
} else {
*it = -x;
}
}
return size(result);
};
return longest_non_increasing_subsequence(nums);
}
};