面筋: 奇虎360 c++ 后台开发 实习生 面试
投的是360上海的商业化部门,岗位是C++服务端开发实习生,记录一下面试历程:
视频面试,但是是有代码框让你写代码的。
一面:
Q:先说一下个人信息,做过的项目
A:..........
Q:先写个翻转字符串
A:........(这个简单,不过要注意一下细节)
Q:了解nginx吗
A:听说过,没有用过暂时(然后面试管就不问NIGIX了)
Q:说一下线程池
A:........(网上很多就不写了,主要也记不清到底当时说的是什么了)
Q:说说你的这个项目吧
A:.......(从总体框架说道细节方面,基本上过关了)
Q:解释一下同步和异步?
A:.......
Q:你还有什么要问我的吗?
A:我问了关于加班以及出勤的问题
一面的面试官比较随和,大概一个小时面试结束,紧接着二面
二面:
Q:先来做个题:假如你有个超能力,可以知道一个月内的股票变化情况,请选择一次买入以及卖出的时间,让你的收益最大
A:先写不出来,然后跟他沟通了一下思路之后磕磕盼盼写出来了,其实这是个典型的DP问题,这个问题网上应该也能搜到。接不细说了
Q:继续做题,给你很多桶水,水量比如说1,2,3,4,5,然后让你把他们倒在一起,使得中间水量是最小的,比如说对于1,2,3,4,5这个集合顺序的话中间的水量是1+2 = 3, 3 + 3 = 6, 6 + 4 = 10, 10 + 5 = 15,一共就是3 + 6 + 10 + 15 = 34,
A:大概说了下思路,其实是HaffMan编码的思想,尽量每次都选当前最小的两桶水。当时觉得这个也是直觉,然后他就让我证明,我磕磕盼盼半天也证明不出来,然后他笑一笑就没继续问了
Q:还是写程序,写个单例模式的程序吧
A:...(这个比较简单,蛮快的写了出来)
Q:还是代码,将一个BST转换成双向链表
A:这个问题想了好久,然后我说我暂时想不到可以使用O(1)的额外空间来实现这个算法,他说那空间随便你用,你写一个出来吧,然后我就用中序遍历重新写了一个单独的双向链表出来了,他说写的没什么问题,然后然我再想想,我想了比较久,但是还是没辙,他就让我等等面HR面了。
二面大概两个小时的样子吧,气氛比较紧张,因为我写代码能力一般,还需要加强,不过勉强还是过了。
HR面:
Q:你觉得你的3个特点,就是用3个特质来概括一下你
Q:平时有什么爱好
Q:以后想去哪里工作
Q:能一直呆在360实习吗
Q:家里的家庭状况
HR面轻松愉快,然后其他的就是后话了
总结一下:360可能比较看中基础,也有可能是我的项目比较水他不太喜欢问,总之问了很多算法题。人生第一次面试,还是挺紧张的。二面的面试官确实比较严肃,给人的压力也挺大。当然自己也要表现的自信一点,然后就是尽量的客气。差不多就是这些了