腾讯二面 20181017
-
自我介绍(无)
-
实习项目介绍
- 项目背景
- 项目完成周期
- 自己负责的模块
-
数据结构和算法
- 算法手撕题1(对单链表反转)
- 给定一个单链表头结点,对其进行反转)
- 首先给出的递归解法(面试官貌似不认可) 空间复杂度O(n)
- 然后给出基于循环结构的解法 空间复杂度O(1)
- 最长公共子序列问题
- 给定两个字符串,然后求两个字符串的最长公共子序列(给出思路,不要求写代码)
- 直接通过二维表,列地推关系式。
- 给定两个字符串,然后求两个字符串的最长公共子序列(给出思路,不要求写代码)
- 给定一个单链表头结点,对其进行反转)
- 算法手撕题1(对单链表反转)
-
高并发知识
- 介绍高并发
- 多线程
- 线程池
- 宏观(设计线程池的思想层面:参数,接口,策略)
- 微观(编程语言层面)
- 死锁
- 如何避免死锁?
- 导致死锁的必要条件
- 避免死锁的方法
- 指定获取锁和释放锁的顺序
- 破坏导致死锁的必要条件,使其不被满足
- 如何避免死锁?
- 介绍高并发
-
Http协议
- what:(Hyper Text Transfer Protocol)超文本传输协议,包含那些东西?
- how:底层实现
- http2.0的特性
- 服务器推送数据
- 首部压缩,减小带宽
- 更多加密方式的支持
- 文本转为二进制数据传输
-
内存泄漏
- what
- 解释什么是内存泄漏?
- 附带对比内存泄漏和内存溢出
- why
- 分析为什么产生了内存泄漏?
- how
- 怎么去检测程序是否存在内存泄漏?
- what
-
智力题(tencent两轮面试都出了两三道智力题,可怕)
- 1.给定一串数字,其个数为偶数个,但是数字之和为奇数,现在两人分别交替从两端拿数字,最后两人拿到的数字之和最大者胜出,问是否存在一种必胜的策略,如果存在请给出,不存在说明理由?
- 2.一个桶中有100个球,两个人交替拿球,每个人每次可以选择在桶中拿出1个或者2个或者3个或者4个球,问是否存在一种必胜的策略,如果存在请给出,不存在说明理由?
- 解决方案:首先从100个数中,先手拿出奇数个数n1=(1 or 3),然后剩下的数也就变成了100-n1。然后每次两人都拿的数之和满足偶数,最后剩下的数肯定是基数,先手赢(可惜该方案是错误的)
- 正确方案:第二个人赢,策略如下:假设每次先手拿n1个数,然后后手拿5-n1个数,最后肯定是第二个人最后拿数,所以第二个人赢。perfect
-
finally
- 1.最后,最后,最后。由于本人擅长的是java语言,面试官说他不太懂java。然后全称有点不太好面,所以涉及java的知识问的很少很少。
- 2.从整个参加秋招以来,遇到过几次本人java,面试官c++的情况。
- 华为优招(直接尬聊项目,聊完问哪个语言用的多,答java,直接让我回去)
- shopee一面(也是全程尬聊,聊完面试官一脸不爽,我就怼了他,把华为的气一次性爆发到了面试官头上)
- 腾讯二面(打破了c++的魔咒,从一出来就感觉生无可恋,到最后回来的路上,刷新了几次公众号状态,大概过了十多分钟的样子,在公交站等车的时候,看到状态为hr环节,整个人高兴的跳起来了,太开心了)
- 晚上8点收了明天的hr面试,开心。希望hr面不要在怼技术,尤其是别遇到擅长c++的hr(保佑),保佑自己明天顺利过。