# 1656. Design an Ordered Stream ###### tags: `Leetcode` `Easy` `Bloomberg` Link: https://leetcode.com/problems/design-an-ordered-stream/ ## 思路 按照题意做 基本上是找从insert key开始的最大的连续chuck(每个位置都有值) 但是由于最后的结果需要可以拼成整个stream所以要用ptr记录现在输出到哪了 ## Code ```python= class OrderedStream: def __init__(self, n: int): self.stream = [None]*n self.ptr = 0 def insert(self, idKey: int, value: str) -> List[str]: idKey -= 1 self.stream[idKey] = value if idKey>self.ptr: return [] while self.ptr<len(self.stream) and self.stream[self.ptr]: self.ptr += 1 return self.stream[idKey:self.ptr] ``` ```java= class OrderedStream { int idx = 0; String[] stream; int size; public OrderedStream(int n) { stream = new String[n]; size = n; } public List<String> insert(int idKey, String value) { List<String> res = new ArrayList<>(); stream[idKey-1] = value; if(idKey-1==idx){ while(idx<size && stream[idx]!=null){ res.add(stream[idx]); idx++; } } return res; } } ```