2020-8-12
这道题看似复杂,实则不难。我的解法是通过一个循环,找到1-n中在target中的元素,每当找到以后就加入一个“Push”到返回数组中,没有找到就加“Push”和“Pop”到返回数组中。循环终止条件是遍历到target末尾。
https://leetcode-cn.com/problems/build-an-array-with-stack-operations/submissions/
class Solution {
public:
vector<string> buildArray(vector<int>& target, int n) {
string s1 = "Push", s2 = "Pop";
vector<string>ans;
int j=0;
for(int i=1;i<=n && j <= target.size()-1;i++)
{
if(i == target[j])
{
ans.push_back(s1);
j++;
}
else
{
ans.push_back(s1);
ans.push_back(s2);
}
}
return ans;
}
};