结了好多好多的李子# gardening - 拈花惹草
K*g
1 楼
感觉twitter的面试比较难,二面派了两个人同时面,就像一面一样,反复纠缠细节,使劲的追问那种,弄得我脑子很乱。
面试是上周进行的,基本的东西不说了,整个面试中真正的题目就是下面这道,由于没有答好,面试fail掉了,郁闷了好几天。
a collection of integer,设计data structure,支持delete, insert, getRandom三个操作,尽量做到最优。
我先提出来BST,复杂度分别是O(logn),O(logn),O(n),然后被追问是worst case复杂度还是average复杂度。然后问要更好的办法。
我就说hashtable,他们就问怎么实现,还说getRandom的复杂度太高了,如果随机产生一个整数,很有可能那个整数在这个collection里不存在,我说那就再产生一个,知道找到为止,面试的人不满意。
然后我还说了bitmap,仍然不满意。中间纠缠了很久,还被问到collection里的整数的range很大,该怎么办之类的。
最后那个面试的人提醒我,考虑hash function。
其实面试的人的最终要求就是三个操作的复杂度都是O(1).
请教高手。
面试是上周进行的,基本的东西不说了,整个面试中真正的题目就是下面这道,由于没有答好,面试fail掉了,郁闷了好几天。
a collection of integer,设计data structure,支持delete, insert, getRandom三个操作,尽量做到最优。
我先提出来BST,复杂度分别是O(logn),O(logn),O(n),然后被追问是worst case复杂度还是average复杂度。然后问要更好的办法。
我就说hashtable,他们就问怎么实现,还说getRandom的复杂度太高了,如果随机产生一个整数,很有可能那个整数在这个collection里不存在,我说那就再产生一个,知道找到为止,面试的人不满意。
然后我还说了bitmap,仍然不满意。中间纠缠了很久,还被问到collection里的整数的range很大,该怎么办之类的。
最后那个面试的人提醒我,考虑hash function。
其实面试的人的最终要求就是三个操作的复杂度都是O(1).
请教高手。