c******n 发帖数: 4965 | 1 http://www.jiuzhang.com/solutions/sliding-window-median/
他们给的这个lintcode 的参考答案, 比我写的还乱,看了就头疼。
这个是我的,
for(int i=0;i
if (i >= k) {
lower.remove(i-k);
upper.remove(i-k);
}
lower.add(i);
while( lower.size() > upper.size()-1)
upper.add(lower.poll());
while( lower.size() < upper.size())
lower.add(upper.poll());
if (i>=k-1)
result.add(nums[lower.peek()]);
}
lower 是max Q, upper 是min Q |
J*******o 发帖数: 741 | 2 他们用的binary search的模板。。不好用 |
d********i 发帖数: 582 | 3 那你用什么模板?
【在 J*******o 的大作中提到】 : 他们用的binary search的模板。。不好用
|
J*******o 发帖数: 741 | |
c*******e 发帖数: 373 | 5 虽然我也没明白题意
但是我怀疑你也没明白题意
你的代码里面你没有排序,是怎么找到median中值的?
【在 c******n 的大作中提到】 : http://www.jiuzhang.com/solutions/sliding-window-median/ : 他们给的这个lintcode 的参考答案, 比我写的还乱,看了就头疼。 : 这个是我的, : for(int i=0;i: if (i >= k) { : lower.remove(i-k); : upper.remove(i-k); : } : : lower.add(i);
|