Redian新闻
>
用什么数据结构快速insert, get median
avatar
用什么数据结构快速insert, get median# JobHunting - 待字闺中
h*5
1
请问各位老师当年和现在都是如何拒绝offer的?是打电话还是发电邮?跟HR联系还是
招人的老板?
给的理由呢?家庭原因,比如配偶不同意?在精华区翻了一遍,没找到。版内搜索也没
有,在标题里搜索reject, decline或据,都没有。希望大家分享一下自己或知道的经历
。谢谢!
avatar
s*d
2
我想着用balanced binary search tree: insert:O(logn), get median:O(logn)
或者linked list: 指针指中间, insert: O(1), get median: O(1)
不过感觉好像有问题
avatar
i*u
3
拒绝offer不用太做作了,简单发个email,说是personnel reason can not take the
offer就完了
avatar
P*c
4
经典题。一个min heap. 一个max heap. 保证大致一样大。
avatar
h*5
5
谢谢。

the

【在 i******u 的大作中提到】
: 拒绝offer不用太做作了,简单发个email,说是personnel reason can not take the
: offer就完了

avatar
f*t
6
linked list的insert不可能是O(1)吧……应该是O(n)
avatar
m*e
7
电话。不想burn the bridge

【在 h****5 的大作中提到】
: 请问各位老师当年和现在都是如何拒绝offer的?是打电话还是发电邮?跟HR联系还是
: 招人的老板?
: 给的理由呢?家庭原因,比如配偶不同意?在精华区翻了一遍,没找到。版内搜索也没
: 有,在标题里搜索reject, decline或据,都没有。希望大家分享一下自己或知道的经历
: 。谢谢!

avatar
G*n
8

单纯的insert是o(1)
但是如果要考虑上搜索位置是O(n)咯

【在 f*******t 的大作中提到】
: linked list的insert不可能是O(1)吧……应该是O(n)
avatar
b*8
9
这是标准答案。如果用fibonacci堆,可以达到时空都是O(1),平摊分析下。

【在 P**********c 的大作中提到】
: 经典题。一个min heap. 一个max heap. 保证大致一样大。
avatar
w*s
10
能不能展开讲一下min heap. 一个max heap怎么找中值?
avatar
j*w
11
Insert all input data into max_heap and min_heap. O(n)+O(n) = O(n)
x = max_heap.top();
y = min_heap.top();
while (x != y)
{
max_heap.pop();
min_heap.pop();
x = max_heap.top();
y = min_heap.top();
}
ret = x;
// while loop is O(n/2 * log n)
avatar
P*c
12
insert过程中,保证两个heap一样大,或者max heap多一。max heap里的所有值小于min heap里的所有值。每次insert只需要比较要insert的数跟两个heap的root决定进哪个heap, 如果insert后两个heap大小不满足要求则把其中一个的root插到另一个。 insert复杂度O(lgn).
找median时,如果两个heap一样大,则median为两个root的平均。
如果max heap多一,则为max heap的root
找median操作为O(1).

【在 w*******s 的大作中提到】
: 能不能展开讲一下min heap. 一个max heap怎么找中值?
avatar
p*e
13
空间复杂度做不到O(1)的。
比如前一万个输入是1-10000,我很容易构造出后一万个数,使得1-10000中间的每个数
都有可能是median, 所以必须得保存当前得到的所有的数。

【在 b*******8 的大作中提到】
: 这是标准答案。如果用fibonacci堆,可以达到时空都是O(1),平摊分析下。
avatar
c*n
14
有篇讲 minmax heap的文章说了怎么用这种数据结构找中数,不是两个heap,但是我没
看明白。

【在 p****e 的大作中提到】
: 空间复杂度做不到O(1)的。
: 比如前一万个输入是1-10000,我很容易构造出后一万个数,使得1-10000中间的每个数
: 都有可能是median, 所以必须得保存当前得到的所有的数。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。