【分析】因为保证了顺序是从小到大,所以直接枚举target中的元素,和[1, n]的元素,如果相同,压入Push,否则压入Push和Pop。
class Solution {
// 栈
public List<String> buildArray(int[] target, int n) {
int j = 1;
List<String> ans = new ArrayList();
for (int i = 0; i < target.length; i++) {
while (j != target[i]) {
ans.add("Push");
ans.add("Pop");
j++;
}
ans.add("Push");
j++;
}
return ans;
}
}
class Solution {
public:
vector<string> buildArray(vector<int>& target, int n) {
vector<string> ans;
int j = 1;
for (int i = 0; i < target.size(); i++) {
while (j != target[i]) {
j++;
ans.push_back("Push");
ans.push_back("Pop");
}
ans.push_back("Push");
j++;
}
return ans;
}
};