面试在coderpad上,面完以后还得run 几个test。
题目是implement一个multistream class。 这个class有3个funciton:
- Add, 输入是一个integer list,把这个list里的数字加到这个class里, return void。
- Remove, 输入是一个integer list, 把这个list从class里移除, return void。
- Read, 输入是一个integer n, 这个function需要从之前加过的那些list里面读n个数字。 如果没有足够的数字就有多少读多少,返回integer list。
栗子:
ms = new MultiStream();
ms.add(newArrayList<Integer>(Arrays.asList(1,2,3,4)));
ms.add(newArrayList<Integer>(Arrays.asList(5,6,7)));
ms.read(3) -> 返回[1,2,3]
ms.remove(new ArrayList<Integer>(Arrays.asList(4)));
ms.read(2) -> 返回[5,6]
ms.read(2) -> 返回[7]
没啥太fancy的算法, bruteforce应该就是最优解,注意好index就行了。