力扣周賽 5404. 用棧操作構建數組

給你一個目標數組 target 和一個整數 n。每次迭代,需要從  list = {1,2,3..., n} 中依序讀取一個數字。

請使用下述操作來構建目標數組 target :

Push:從 list 中讀取一個新元素, 並將其推入數組中。
Pop:刪除數組中的最後一個元素。
如果目標數組構建完成,就停止讀取更多元素。
題目數據保證目標數組嚴格遞增,並且只包含 1 到 n 之間的數字。

請返回構建目標數組所用的操作序列。

題目數據保證答案是唯一的。

 

示例 1:

輸入:target = [1,3], n = 3
輸出:["Push","Push","Pop","Push"]
解釋: 
讀取 1 並自動推入數組 -> [1]
讀取 2 並自動推入數組,然後刪除它 -> [1]
讀取 3 並自動推入數組 -> [1,3]
示例 2:

輸入:target = [1,2,3], n = 3
輸出:["Push","Push","Push"]
示例 3:

輸入:target = [1,2], n = 4
輸出:["Push","Push"]
解釋:只需要讀取前 2 個數字就可以停止。
示例 4:

輸入:target = [2,3,4], n = 4
輸出:["Push","Pop","Push","Push","Push"]
 

提示:

1 <= target.length <= 100
1 <= target[i] <= 100
1 <= n <= 100
target 是嚴格遞增的

 

 

class Solution {
public:
    vector<string> buildArray(vector<int>& target, int n) {
        vector<string>ans;
        int key=0;
        for(auto it=target.begin();it!=target.end();it++)
        {
            int k=*it;
            key++;
            while(key<k)
            {
                key++;
                ans.insert(ans.end(),"Push");
                ans.insert(ans.end(),"Pop");
            }
            ans.insert(ans.end(),"Push");
        }
        return ans;
    }    
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章