HuLu笔试面试经验

发布时间:2015-11-03 编辑:义俏‍ 手机版

  10.7上午接到HuLu打来的电话问晚上有没有时间,要电话面试,我说可以,第一次接到电话,而且还是电面真有点儿紧张。

  晚上8.00整电话准时打过来,先让自己介绍了一下花了2分钟左右,然后让我选择一个自己喜欢的项目介绍,介绍项目花了3分钟多一点儿,然后他问了一些简单问题:

  l 项目的难点

  l 存在的问题

  l 如果再给我两个月,让我说出项目还可以做何优化

  然后开始面试技术问题:

  第一个问题是语言掌握情况,接下来都是算法问题

  1、 问会不会C++,我说看过书,没做过项目,然后他说:“那你C很熟了”,我说还可以吧,他问如何减少内存泄漏或多次释放同一个内存带来的危险,我就按照C 语言的编程风格说尽量在一个函数内申请空间然后释放,malloc 和free不要跨函数,然后他问C++如何实现,我说,类里面如果有指针成员,必须自己实现拷贝构造函数、重载赋值运算符,感觉他不太满意,又问我智能指针如何实现,忘了L。

  问算法问题前,他先说明如果我见过告诉他,说不要浪费时间,我感觉如果你见过四个只跟他说你见过两个最好。

  2、 问我对web技术了解如何,我说不太了解J

  3、 冒泡排序复杂度,快速排序复杂度【问得很浅】

  4、 已知二叉树的两个节点,求最近的公共祖先

  我说很早就见过,他就直接问了下一个问题

  5、 1­­­­—n,共n个数去掉一个,如何快速知道缺失的数?

  我说见过,他又问,如果少两个呢?我想了一下,说可以申请空间类似于散列的方式来做,就散列他又问了几个问题:

  (1)、我平时常用的散列函数

  (2)、对字符串如何构造散列函数

  (3)、冲突率如何,如何解决冲突

  回到原题,他说这种方法可以,但是申请可额外空间,如何不申请额外空间,我想了好一会儿:说可以这样求出 a+b和a*b即可,他说这样不好,马上说”不能说不好”(J),让我想想别的方法,最后他说可以求出a+b和a^2+b^2。

  6、 两个链表如何判断相交

  我说见过,他说如何找出交点?我想了一会儿说,先求出链表长度,然后申请空间存储链表的地址,保证可以从后向前比较,他说不申请空间如何实现?

  想了一会儿没思路,他提示如何利用你求出的链表长度呢?我马上有了思路:先定义两个指针指向链表头,让指向长的链表指针先走一定的步数,然后两个指针同步移动判断。

  7、 一个包含n个元素的数组,其中一个数重复超过n/2次,如何找出这个数

  我说就是求中位数,然后他说如何做,我说用快速排序的partition函数,他问复杂度是多少我说O(n),他问为什么,我简单给他说了一下复杂度的递归式就OK

  8、 如何判断一个链表存在环

  我说见过他又问,如果存在环,如何确定交点,想了一会儿,没思路,它提示说,将环断开,我茅塞顿开,说这就是两个相交链表判断交点位置的问题了OK.

  9、 如何判断一个数是2的幂

  (x + ~0)&x

  暂时就想到这么些题了,其他想到再补充。总共1个小时零10分钟左右。

下页更精彩:1 2 3 4 5 下一页
本文已影响
HuLu笔试面试经验相关推荐