解题思路:
非常简单的一道双指针问题,定义两个指针分别指向target数组和有序n数组中的下标,如果对应相等,向res数组中加入push,不相等,target数组指针不动,向res数组中加入push和pop,target数组指针到头,break,返回res即可,代码如下:
class Solution {
public:
vector<string> buildArray(vector<int>& target, int n) {
vector<string> res;
int index = 0;
int len = target.size();
for(int i = 1; i <= n; i ++) {
if(target[index] == i) {
res.emplace_back("Push");
index ++;
} else {
res.emplace_back("Push");
res.emplace_back("Pop");
}
if(index == len) break;
}
return res;
}
};