腾讯研发面经

腾讯研发面经

腾讯SNG

 

后台开发工程师

 

 

大概是8月初投的简历,当时没有选事业群,第二天直接被sng捞了,抓着我一顿面试。

 

一周内就面完了三次面试,接着就开始无尽的等待,整整等了三周左右,终于完成了四面和HR面。

 

整个过程还是比较曲折的,技术面试的难度也挺大的,不过他们部门也是Java线,所以还比较有的聊。结果目前还不知道。

 

 

 

1一面

一面:

 

1 有序数组排序,二分,复杂度

 

2 常见排序算法,说下快排过程,时间复杂度

 

3 有N个节点的满二叉树的高度。1+logN

 

4 朋友之间的点对点关系用图维护,怎么判断两人是否是朋友,并查集,时间复杂度,过程。没讲清楚

 

1. 初始化元素 

2. 实现元素与元素间的联合操作 

3. 实现查找元素所在树的根节点 

4. 解决一个问题,判定两个元素是否在同一棵树上(两个元素是否相互连接)

 

5 单元点最短路的方法,时间复杂度

 

6 如何实现关键字输入提示,使用字典树,复杂度多少,有没有其他方案,答哈希,如果是中文呢,分词后建立字典树?

 

7 hashmap的实现讲一下吧,讲的很详细了。讲一下红黑树的结构,查询性能等。

 

8 Java中的垃圾回收讲一下,讲了分代,gc算法,gc root可达性分析等

 

9 讲一下两个项目你都做了什么把。

 

10 除了代码之外你还学习了什么技术,框架。

 

11 死锁是怎么产生的

 

12 线程和进程的区别

 

13 进程的通信方式

 

14 CPU的执行方式

 

15 代码中遇到进程阻塞,进程僵死,内存泄漏等情况怎么排查。通过ps查询状态,分析dump文件等方式排查。

 

16 Linux了解么,查看进程状态ps,查看cpu状态 top。查看占用端口的进程号netstat grep

 

17 10g文件,只有2g内存,怎么查找文件中指定的字符串出现位置。MapReduce分割文件处理。

 

他说可以用cat | grep 管道处理。

 

2二

二面:

 

1 快排的时间复杂度,冒泡时间复杂度,快排是否稳定,快排的过程

2 100w个数,怎么找到前1000个最大的,堆排序,怎么构造,怎么调整,时间复杂度。

3 一个矩阵,从左上角到右下角,每个位置有一个权值。可以上下左右走,到达右下角的路径权值最小怎么走。

先说了一下dfs递归实现。面试官说要优化。

说了一下用迪杰斯特拉的思路,说可以。

4 四辆小车,每辆车加满油可以走一公里,问怎么能让一辆小车走最远。说了好几种方案,面试官引导我优化了一下,但是还是不满意,最后他说跳过。

5 hashmap的实现,hashtable,concurrenthashmap实现。

6 MySQL的索引,B+树性质。

7 Linux的cpu 100怎么排查,top jstack,日志,gui工具

8 Linux大文件怎么查某一行的内容。

9 Redis内存数据库的内存指的是共享内存么

10 Redis的持久化方式

11 秒杀系统的架构设计

 

3

三面:

 

1 十亿个数的集合和10w个数的集合,如何求它们的交集。

集合的数字不重复。

我讲了两次循环,两次hash,以及排序或者合并等方式。。都不对。后来面试官说是对小数组做hash,然后遍历大数组即可。我完全想错方向了。

2 十亿和数找到前100个最大的,堆排序,怎么实现,怎么调整。

3 TCP和UDP的区别,具体使用场景呢。

4 TCP四次挥手讲一下过程,最后一次ack如果客户端没收到怎么办。

5 对于socket编程,accept方法是干什么的,在三次握手中属于第几次,可以猜一下,为什么这么觉得。

6 Linux操作系统了解么,了解一点点,就没问了。

7 对于单例模式,有什么使用场景了,讲了全局id生成器,他问我分布式id生成器怎么实现,说了zk,问我zk了解原理不,讲了zab,然后就没问啦。

8 除了单例模式,知道适配器模式怎么实现么,有什么用

9 回到网络,刚才你说到直播场景,知道直播的架构怎么设计么,要点是什么,说了几个不太对,他说要避免广播风暴,答不会。

10 Redis和MySQL有什么区别,用于什么场景。

11 问了一下最近看什么书,什么时候开始写博客的

12 问了还有几轮面试,他说这轮我可以过,有点小惊喜

 

4

四面:

三面过了半个多月,终于安排四面了。

1 自我介绍

2 项目,收获

3 Linux了解哪些,基础命令和知识。问我proc文件系统了解么,答不了解。

4 TCP和UDP的核心区别在哪,讲了滑动窗口保证可靠有序传输,UDP不可靠。TCP需要连接而UDP不需要。

5 TCP的四次挥手,time wait状态有什么意义。

6 说完这个他问我有什么想问他的了。

7 我问他为什么隔了这么久才面试,而且之前三面都只是初试,然后他说最近他在休假,所以就。。。害我担心了好久。他说接下来等HR面就行了。

 

 

5

HR面:

1 自我介绍

2 实习收获

3 台湾交流体验

4 之前实习公司的情况,拿到offer了吗,会如何选择呢

5 排一下公司,部门,薪资和城市等因素。

6 你的优缺点,如何改进

7 学生时代最成功的事

8 你的预期薪资

 

微信公众号

个人公众号:程序员黄小斜

微信公众号【程序员黄小斜】新生代青年聚集地,程序员成长充电站。作者黄小斜,职业是阿里程序员,身份是斜杠青年,希望和更多的程序员交朋友,一起进步和成长!专注于分享技术、面试、职场等成长干货,这一次,我们一起出发。

关注公众号后回复“2020”领取我这两年整理的学习资料,涵盖自学编程、求职面试、算法刷题、Java技术学习、计算机基础和考研等8000G资料合集。

技术公众号:Java技术江湖

微信公众号【Java技术江湖】一位阿里 Java 工程师的技术小站,专注于 Java 相关技术:SSM、SpringBoot、MySQL、分布式、中间件、集群、Linux、网络、多线程,偶尔讲点Docker、ELK,同时也分享技术干货和学习经验,致力于Java全栈开发!

关注公众号后回复“PDF”即可领取200+页的《Java工程师面试指南》强烈推荐,几乎涵盖所有Java工程师必知必会的知识点。

  分析:根据题目的意思,要使汽车加次数最少,就必须让汽车跑的尽可能远,直到无法到达下一站的时候才加。   设汽车加满后最多能行驶nkm,旅途中有k个加站,D={d1,d2,d3,d4,...dk,d(k+1)}为相邻两个加站之间的距离的集合,d1为从出发点到第一个加站之间的距离,d(k+1)为第k个加站距离第k+1个加站之间的距离。   贪心选择性质:设S={s1,s2,s3,...sn}为给汽车加过的加站的集合,易知有n个加站给汽车加过,假设S为最有解,则n为最优值n(n<=k)。   设有d1+d2+....+d(m)<=n,d1+d2+...+d(m+1)>n,则为了得到最优解,第一次给汽车加的加站为d(m)。若s1=d(m),则S就是一个以贪心选择开始的最优解。若汽车在第m个加站之前已经加过,则设S’=S-{s1}Ud(m),汽车在s1加满后可到达s2,则在第m个加加满后,汽车也毫无疑能到达s2。也就是说S’是以贪心选择加站dm开始的最优加选择。由此可见,总存在以贪心选择开始的最优加方案。   最优子结构:在做了贪心选择之后,原题就变成了在第m个加站到第k个加站之间汽车加的最少次数题。假设能在第m个加站到第k个加站加更少次数的,那么总的加次数将小于n这与S为题最优解相矛盾,所以每一步所做的贪心选择都将题简化为一个更小的与原题具有相同形式的子题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java技术江湖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值