Posted on

Description

Submission

class Solution {
public:
int minOperations(vector<int>& target, vector<int>& arr) {
// LIS
map<int, int> Map;
for(int i = 0; i < target.size(); ++i) {
Map[target[i]] = i;
}
vector<int> q;
for(auto x: arr) {
if(Map.find(x) != Map.end()) {
q.push_back(Map[x]);
}
}
vector<int> s;
for(int x : q) {
if(s.empty() || x > s.back()) {
s.push_back(x);
} else {
auto iter = lower_bound(s.begin(), s.end(), x);
*iter = x;
}
}
return target.size() - s.size();
}
};
class Solution { public: int minOperations(vector<int>& target, vector<int>& arr) { // LIS map<int, int> Map; for(int i = 0; i < target.size(); ++i) { Map[target[i]] = i; } vector<int> q; for(auto x: arr) { if(Map.find(x) != Map.end()) { q.push_back(Map[x]); } } vector<int> s; for(int x : q) { if(s.empty() || x > s.back()) { s.push_back(x); } else { auto iter = lower_bound(s.begin(), s.end(), x); *iter = x; } } return target.size() - s.size(); } };
class Solution {
public:
    int minOperations(vector<int>& target, vector<int>& arr) {
        // LIS
        map<int, int> Map;
        for(int i = 0; i < target.size(); ++i) {
            Map[target[i]] = i;
        }

        vector<int> q;
        for(auto x: arr) {
            if(Map.find(x) != Map.end()) {
                q.push_back(Map[x]);
            }
        }

        vector<int> s;
        for(int x : q) {
            if(s.empty() || x > s.back()) {
                s.push_back(x);
            } else {
                auto iter = lower_bound(s.begin(), s.end(), x);
                *iter = x;
            }
        }
        return target.size() - s.size();
    }
};

Leave a Reply

Your email address will not be published. Required fields are marked *