LeetCode #188場周賽題解
- 2020 年 5 月 10 日
- 筆記
- 刷題筆記: LeetCode
給你一個目標數組 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 個數字就可以停止。
提示:
1 <= target.length <= 100
1 <= target[i] <= 100
1 <= n <= 100
target
是嚴格遞增的
class Solution {
public:
//正常判斷是否需要在target數組中存儲,同時如果足夠了即可break
vector<string> buildArray(vector<int>& target, int n) {
vector<string>v;
int len = target.size();
int j = 0;
for(int i = 1;i <=n ;++i){
if(j == len)break;
if(i == target[j]){
v.push_back("Push");
++j;
}
else{
v.push_back("Push");
v.push_back("Pop");
}
}
return v;
}
};