通过万岁!!!
- 题目:让你设计一个类,初始化一个长度为n的数组,然后里面有一个ptr指针。然后每次调用insert方法,往数组中的idkey位置加入一个元素,值是value,然后你需要返回一个链表,是从ptr开始,直到最后一个元素。并且ptr要指向下一个元素。也就是哪个空元素。
- 思路:其实题目挺简单的,就是定义一个数组(构造函数)。下面就是insert方法了,for遍历这个数组,每次从ptr开始即可。遍历到不是空,就直接扔到一个list中。最后返回这个list。但是我的时间复杂度比较高,没有双百,明明我看了一下都是o(n)的时间复杂度。
- 技巧:数组的遍历
java代码
class OrderedStream {
int ptr = 0;
String[] arrs;
public OrderedStream(int n) {
arrs = new String[n];
}
public List<String> insert(int idKey, String value) {
arrs[idKey - 1] = value;
List<String> ans = new LinkedList<>();
int i = ptr;
while (ptr < arrs.length && arrs[ptr] != null) {
ans.add(arrs[ptr]);
ptr++;
}
return ans;
}
}
- 总结:题目不是特别难,毕竟也是简答题么。