题目
我的思路(正确)
首先明确:
target数组是严格递增的
list中的元素是从1开始的、连续的、严格递增的
如果list中的元素在target数组中,那么需要向返回的list中加入"Push"
- 比如示例二,target=[1,2,3],n=3,那么list={1,2,3},输出的就是1个list,其中包含3个"Push"
如果list中的部分元素不在target数组中,则需要向返回的list中加入"Push",再加入"Pop"
- 比如实例一,target=[1,3],n=3,那么list={1,2,3},输出的就是1个list,内容为[“Push”,“Push”,“Pop”,“Push”]
如果target数组的长度小于n,以target数组为主,数组遍历结束,循环就结束
- 比如,示例三,target=[1,2],n=4,那么list={1,2,3,4},由于target数组只有两个数字,所以target数组读取完成就结束
import java.util.ArrayList;
import java.util.List;
class Solution {
public List<String> buildArray(int[] target, int n) {
List<String> list = new ArrayList<>();
//i用来遍历target数组
int i = 0;
//下标j用来遍历{1,2,3,...,n}
int j = 0;
while (j < n && i < target.length) {
list.add("Push");
if (j + 1 != target[i]) {
list.add("Pop");
} else {
i++;
}
j++;
}
return list;
}
}
版权声明:本文为guliguliguliguli原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。