其实被题目描述欺骗了,仔细看提供的动图,就能发现规律,其实就是定义一个起始下标,只有当输入的流是起始下标开始的id,才开始返回连续的结果。
可能理解起来有点绕,看答案哈
class OrderedStream {
int ptr;
int n;
Map<Integer, String> map;
public OrderedStream(int n) {
this.n = n;
ptr = 1;
map = new HashMap<>();
}
public List<String> insert(int idKey, String value) {
map.put(idKey, value);
List<String> res = new ArrayList<>();
for (int i = ptr; i <= n; i++){
if (!map.containsKey(i)){
break;
}
res.add(map.get(i));
ptr++;
}
return res;
}
}
/**
* Your OrderedStream object will be instantiated and called as such:
* OrderedStream obj = new OrderedStream(n);
* List<String> param_1 = obj.insert(idKey,value);
*/