通过万岁!!!
- 题目:这个题目我觉得有点绕,可能是我理解问题吧。题目的意思就是给你一个数n,它可以构建一个1-n的数组,然后通过这个构建的数组去构建一个target。这个target是严格递增的,还有就是构建的过程中,需要记录一个栈的操作(对我们构建出来的数组进行这些记录的栈的操作以后,使得最后剩下的内容是target)。
- 思路:遍历构建的数组,然后如果是target的内容,那么淡出的push即可,如果不是,则push了然后pop掉。
- 技巧:数组遍历、栈
java代码
class Solution {
public List<String> buildArray(int[] target, int n) {
int idx = 0;
List<String> ans = new ArrayList<>();
if (n == target.length) {
for (int i = 1; i <= n; i++) {
ans.add("Push");
}
return ans;
}
for (int i = 1; i <= n && idx < target.length; i++) {
if (i == target[idx]) {
idx++;
ans.add("Push");
} else {
ans.add("Push");
ans.add("Pop");
}
}
return ans;
}
}
- 总结:题目不难,主要是不太好理解。