Bilibili (the Chinese version of Youtube) tele-interviewed me at yesterday afternoon. This article records the process and content of the interview.
昨天下午参加了B站的一个电话面试,本文记录了面试的内容。
作为B站的忠实粉丝,能够参与B站的电面是很高兴的。
给我面试的面试官是来自云技术部的,她的声音很好听 :)
一上来就是自我介绍,讲讲曾经做过的项目,她对我做过的实体链接研究、代码编辑器以及人工智能的项目比较感兴趣,然后我就讲了大概半小时的 Entity Linking in Web Tables……
介绍完背景经历后,就问了一些数据结构方面的问题:
- 讲下你知道的数据结构
- 在这些数据结构中插入元素的时间复杂度
对于第一个问题,我基本把我想到的数据结构都讲了:链表,队列,栈,二叉树,堆,trie树,Hash表
然后在第二个问题中,堆中插入元素的过程我没有答上来,我感觉是自顶向下,用二分查找的方式插入,然而实际上是自底向上,根据堆的性质 (父节点的值大于子节点的值,或者相反) 递归插入。
讲完数据结构,就是限时编程测试,在 CodePad 上做一个题。
题目是环形链表插值,一个环状有序链表,有头指针,里面存储的元素按升序排列(除去环的交接点,即头部元素和尾部元素)。使用C/C++实现一个算法,将新元素插入到当前链表中,不破坏原有链表的各种约束。
[C++ Code]
1 | // Created by sjyan @2017-06-23 |