腾讯——微信后台
- 3升和5升水桶,准确量出4升。没想到一面会有智力题,而且这个问题感觉是见过很多次了吧,但我就一时绕不开,草稿纸上写写画画半天才解出来
- 20瓶汽水,两个空瓶换一个,问最多喝多少。之前看过3个空瓶换一个的,有点激动,面试过程中就用3个带进去算,结果错了被面试官提醒,然后后面算又忘了最初的20瓶,总之这个问题答的不好
- 十箱苹果,每箱10个,一箱里面苹果都是9两,其余每箱苹果每个都是1斤,如何仅称一次找出9两的那一箱。这个问题我从来没听说过,但是却是我前三个智力题里面想得最快的。9的倍数个位数分别是0~9,如果第一箱取一个苹果,第二箱取两个,第三箱三个,……第十箱十个,称一次,看结果个位数就很容易定位9两苹果位置了。
- 问括号怎么匹配,我说用的栈
- 一个升序单链表和一个降序单链表,如何合并成一个升序单链表,我还是用的栈,将降序链表压进去,然后弹出并且遍历升序链表,这里面试官也没强调空间要求,我也就没考虑
- A和B两个500G文本文件,每个里面一行一行存有QQ号,每个文件QQ号不重复,如何找出两个文件重复的QQ号(这只是第一小问,我这题就没答上来,后面小问也没记住,一共三个)。这个我直接无脑说的map,然后反问内存不够,我说string转int,反问内存不够,不会了。
- 一个单链表,如何找出倒数1000个节点,快慢指针
- 问1-2+3-4+5-6……N怎么算,就分成两种情况嘛,N是偶数和奇数
- 问了下虚函数是什么,我说是为了实现多态,基类声明了虚函数,然后派生类声明定义的时候可以重写,派生类声明时也可以声明虚函数。我还等着他进一步问,比如虚函数表啊,虚继承啥的,然后没了。
- 问了解STL吗?我一开始听成SQL我说不好意思没接触过,然后重复了一下,哦哦哦晓得。就问了我了解vector和list区别吗?vector是顺序容器,list不是顺序的,vector内存连续,list不连续,vector查找是O(1)的,list是O(N)的,vector删除时删除位置后面的迭代器全部失效,list删除时删除位置的失效,更多的我一时也没想到,但是面试官也没进一步问。
- 问排序算法知道哪些,我说冒泡、快排、堆排序,然后停顿了下,选择插入归并。然后就没了,也没进一步让我手撕啥的。
- 问冒泡时间复杂度,n平方
- 问网络是自学的?我说是,然后问我tcp了解什么。我说面向连接,可靠的,有校验和,有ACK、SEQ,有三次握手四次挥手,超市重传,流量控制,拥塞控制。我等着进一步问,没了。
- 问IP是不是可靠的,我记得IPv4有个什么校验和我就说是的,然后面试官问那要tcp干嘛,我改口不是了,tcp提供稳定链接。后来查了下ipv4只是首部校验和
- 了解cookie吗?我说因为http是无连接的,用了就丢,不会记忆用户,就要用cookie来记录用户数据(随口说的,感觉很不准确)
- 了解什么加密算法吗?压根不知道,我就说了个SSL。
- 用过SQL吗?没有