Bloomberg On Campus 二面

一面链接: https://www.1point3acres.com/bbs … d=447648&extra=
二面体验非常差了。。。两个面试官,一个天竺大哥,一个欧洲小哥。

第一题: 天竺大哥提问。 林口药林伞, 稍微有一点改动,需要对每个node生成next pointer, 这个pointer指向下一个访问的节点。
实在听不太懂阿三说啥,以为他要弄一个nextNode()的API,调用一次输下一个node。 我就说preprocessing这棵树,生成next pointer就可以了。但他说不需要preprocessing, 然后balabala。然后我就用bfs解了。。。

第二题,欧洲小哥提问。 面经题,问10000个股票,输出top k个share quanlity最高的, 快的范围不确定,问我用什么data structure。
我说用heap,让我解释heap的性质,我说parent的value大于children的value,然后天竺大哥驳道,heap的性质是第nth层的值大于所有n+1th的值。然后说我说的不是heap,是bst,问我知不知道bst和heap的区别(我内心OS ????)。 然后懵逼良久,那我就说好吧, 然后follow up问我如果有多个人同时想得到top k呢?用什么data structure, 我想了良久说heap加list。最后问我建堆的时间复杂度,我说O(n), 然后他们两用奇怪的眼神看着我,然后提示我说是nlog(n)…我只好说是nlog(n) 了,然后他们就又兴奋的看着我。

二面连代码都没写, 应该是挂了。 这个体验确实挺差的,祝大家好运吧。

巧了,上次BB家一个白人大哥OCI时候偏要说C++的std::queue::pop()会返回被删除的element,质疑我为什么要先front()取值再call一次pop()。醉了,加上那个spy chip的新闻我对他家好感全无。

感觉很不专业。。。

heap的两点可能是没解释清产生误解了吧。。。

不至于了,我都画他看了

楼主能解释下关于多人同时得到top k,为什么用heap + list呢?
不太理解。
多谢

我当时的想法就是生成一个sorted list,每从heap里移出一个node就加到list尾部。我也不知道答案是啥,瞎猜的,哈哈哈

来自官方APP

“10000个股票,输出top k个share quanlity最高的, 快的范围不确定,问我用什么data structure” 可以详细说一下吗?
还有2个面试官居然对heap也不了解也太可怕了哈哈哈,内心奔溃

心疼楼主,第二题是这个欧洲小哥有毒吧heap明明就不是非要第n层大于所有n+1层的值,详情见binary heap wiki右侧sample图