less than 1 minute read

<-E 1441> Build an Array With Stack Operations

//method1
class Solution {
public:
    vector<string> buildArray(vector<int>& target, int n) {
        vector<string> ans;
        int begin = 1;
        for(auto i : target) {
            if(i == begin) {
                ans.push_back("Push");
                begin++;
            }
            else {
                while(++begin <= i) {
                    ans.push_back("Push");
                    ans.push_back("Pop");
                }
                ans.push_back("Push");
            }
            
        }
        return ans;
    }
};

// Method 2

class Solution {
public:
    vector<string> buildArray(vector<int>& target, int n) {
        vector<string> ans;
        
        int i = 0;
        
        for(int j = 0;j < target[target.size()-1]; j++){
            ans.push_back("Push");
            if(j + 1 == target[i]){
                i++;
            } else {
                ans.push_back("Pop");
            }
        }
        
        return ans;
    }
};