1441. Build an Array With Stack Operations
Build an Array With Stack Operations
Given an array
target
and an integer n
. In each iteration, you will read a number from list = {1,2,3..., n}
. Build the
target
array using the following operations: list
, and push it in the array. You are guaranteed that the target array is strictly increasing, only containing numbers between 1 to
n
inclusive. Return the operations to build the target array.
You are guaranteed that the answer is unique.
Example 1:
Input: target = [1,3], n = 3
Output: ["Push","Push","Pop","Push"]
Explanation:
Read number 1 and automatically push in the array -> [1]
Read number 2 and automatically push in the array then Pop it -> [1]
Read number 3 and automatically push in the array -> [1,3]
Example 2:
Input: target = [1,2,3], n = 3
Output: ["Push","Push","Push"]
Example 3:
Input: target = [1,2], n = 4
Output: ["Push","Push"]
Explanation: You only need to read the first 2 numbers and stop.
Example 4:
Input: target = [2,3,4], n = 4
Output: ["Push","Pop","Push","Push","Push"]
Constraints:
1 <= target.length <= 100
1 <= target[i] <= 100
1 <= n <= 100
target
is strictly increasing. C++解法
class Solution {
public:
vector buildArray(vector& target, int n) {
vector inputArray(n);
vector result;
int j=1;
for(int i=0;i
Java解法
class Solution {
public List<String> buildArray(int[] target, int n) {
List<String> result=new ArrayList<String>();
for(int i=0,j=1;i<target.length;){
if(target[i]==j){
i++;
j++;
result.add(new String("Push"));
}else{
j++;
result.add(new String("Push"));
result.add(new String("Pop"));
}
}
return result;
}
}
Go解法
func buildArray(target []int, n int) []string {
result := []string{}
j:=1
for i:=0;i<len(target); {
if target[i]==j {
i++
j++
result = append(result,"Push")
}else {
j++
result = append(result,"Push","Pop")
}
}
return result
}