1441 用棧操作構建陣列
題目描述:
給你一個目標陣列 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 是嚴格遞增的
方法1:
主要思路:
(1)模擬過程即可;
(2)從1到n,逐個數字壓入棧中,同時同步判斷目標陣列中的元素;
(3)若是是當前目標陣列中的元素,則只壓入,然後目標陣列索引後移,判斷下一個;
(4)若不是,則需要壓入和彈出兩個操作;
class Solution {
public:
vector<string> buildArray(vector<int>& target, int n) {
int pos=0;
vector<string> res; //儲存結果
for(int i=1;i<=n;++i){
if(i==target[pos]){//若是當前元素
res.push_back("Push");
++pos;
if(pos==target.size()){//提前終止條件
break;
}
}
else{//若不在目標陣列中
res.push_back("Push");
res.push_back("Pop");
}
}
return res;
}
};
相關文章
- leetcode155. 最小棧 1441. 用棧操作構建陣列 劍指 Offer 09. 用兩個棧實現佇列LeetCode陣列佇列
- JavaScript資料結構之陣列棧佇列JavaScript資料結構陣列佇列
- 構建最簡單陣列陣列
- 陣列操作陣列
- 陣列的reduce操作+物件陣列的map操作陣列物件
- vue陣列操作遇到坑-關於陣列操作Vue陣列
- JZ-051-構建乘積陣列陣列
- javascript陣列操作JavaScript陣列
- Scala陣列操作陣列
- Numpy陣列操作陣列
- JavaScript 陣列操作JavaScript陣列
- js資料結構與演算法 陣列、棧部分JS資料結構演算法陣列
- PHP xml 轉陣列 陣列轉 xml 操作PHPXML陣列
- JS常用陣列操作JS陣列
- 對陣列的操作陣列
- JavaScript陣列常用操作JavaScript陣列
- 陣列的基本操作陣列
- Python陣列常用操作Python陣列
- 記一次陣列操作:陣列 A 根據陣列 B 排序陣列排序
- 初識Java(Java陣列-陣列的基本操作)Java陣列
- 聊聊陣列與連結串列,棧與佇列陣列佇列
- 陣列的操作-變形陣列
- PHP 陣列轉樹結構/樹結構轉陣列PHP陣列
- 兩個棧實現佇列操作佇列
- 陣列(ArrayPool陣列池、Span<T>結構)陣列
- 【建議收藏】徒手實現24+陣列方法,誰說你只是“會用”陣列陣列
- 「譯」使用 Node 構建命令列應用命令列
- 構建一個Flowable命令列應用命令列
- Python全棧Web(JavaScript函式、陣列)Python全棧WebJavaScript函式陣列
- 力扣 - 劍指 Offer 66. 構建乘積陣列力扣陣列
- 重溫四大基礎資料結構:陣列、連結串列、佇列和棧資料結構陣列佇列
- arm64 架構之入棧/出棧操作架構
- JavaScript陣列解構JavaScript陣列
- 資料結構-佇列、棧資料結構佇列
- 物件解構,陣列解構物件陣列
- JS常用陣列操作全解析JS陣列
- JavaScript 陣列常見操作 (二)JavaScript陣列
- JavaScript 陣列常見操作(一)JavaScript陣列