高级农民
- 积分
- 1134
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2018-11-16
- 最后登录
- 1970-1-1
|
{
ArrayList<Character> list = new ArrayList<Character>();
int index = 0;.--
Character[] get(int maxSize) {
int size = list.size();
Character[] res;
int remain = size - index;
if (remain == 0) {
return new Character[0];
} else if (remain < maxSize) {
res = new Character[remain];
} else {
res = new Character[maxSize];
}
int tmp = index;
for (int i = 0; i < res.length;i++) {
res[i] = list.get(index++);
if (res[i] == null) {
index = tmp;
return new Chacter[0];
}
}
return res;
}
TimeComplex O(Math.max(Math.abs(list.size() -offset), arrays.length))
SpaceComplex O(n)
// offset mayBe very large such as 100000
void set(int offset, Character[] arrays) {
int remain = list.size() - offset;. ----
if (remain < arrays.length) {
list.addAll(Arrays.asList(new Character[arrays.length-remain]);.
}
for (int i = 0; i < arrays.length; i++) {
list.set(offset++, arrays[i]);
}
}
}
.1point3acres
follow 简单讨论了下. From 1point 3acres bbs
1. 可以根据 offset和index,进行hash,路由到相应到机器上
2. 计算machineId可以处理的range
3. 再根据起始 machineId 、 arrays 和maxSize,迭代计算 |
|