题目来源:
leetcode题目,网址:1656. 设计有序流 - 力扣(LeetCode)
解题思路:
public OrderedStream(int n){} 函数根据长度 n 初始化数组和 ptr 。
public List<String> insert(int idKey, String value) {} 需要在将所给 value 置于 idKey 位置后按序遍历流。若此次遍历为第一次遍历,开始位置为首位,否则,从上一次结束位置开始遍历直至 n 个元素都遍历过或当前元素未被赋值,最后返回当次遍历得字符串列表。
解题代码:
class OrderedStream {
int ptr;
String[] arr;
public OrderedStream(int n) {
ptr=0;
arr=new String[n];
}
public List<String> insert(int idKey, String value) {
arr[idKey-1]=value;
List<String> res=new ArrayList<>();
while(ptr<arr.length && arr[ptr]!=null){
res.add(arr[ptr]);
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);
*/
总结:
题目不难,读题有点麻烦,中英图对照才看明白。
官方题解也是一样的思路,不过他将数组长度设为 n+1,从 1 开始遍历。
arbitrary 任意地
chunk 厚块,大量
implement 实现