腾讯 PCG 早鸟计划 一二面

12 月 5 号 笔试

笔试题在最后

12 月 6 号一面

现场面,当我看到面试官那个战损成色的 ThinkPad 的时候就知道大事不妙

Q:为什么项目的数据库使用 innodb 不用其他的?
Q:Java 的类加载机制,为什么使用双亲委派?
以上两个问题 5 分钟
剩下 25 分钟全程聊项目
因为我看桌子上有一只笔,我一直想用笔来画一下有一些细节,面试官说不用笔你就口述给我讲清楚就行
最后问我你非科班的做这些东西图什么东西?
我说很有趣
他又问我哪里有趣了?
(杠精?)
面完之后让我回去等通知

等待

6 号的时候问什么时候出结果?那边回复说他们要回深圳之后对简历进行二次筛选,如果觉得合适会再次约面试的.

8 号的时候电话联系我说一面过了,让我去官网完善简历等待后续约面试,让我写意向部门的时候选 PCG QQ 看点

12 月 16 日二面

等了十天终于二面了,晚上 10 点突然打电话问方不方便讲话

开始...

1.虚拟内存 swap 过程
2.归并排序用在哪里
3.快排优化,Arrays.sort()里面用的什么排序?你给我讲讲?
4.什么是 IOC?Bean 初始化过程
5.hashmap 的长度始终为 2 的幂次方除了减少哈希冲突还有什么用?
6.头插和尾插怎么实现的,讲具体细节
7.Java为什么要引入轻量级锁?呢个版本引进的?
8.线程池为什么要区引入缓冲队列?要是没有会怎样?
9.口述线程交替打印 ABC
10.volatile 特性
11.什么是 happens-before
12.sync 特性以及和 volatile 的区别
13.进程通信的方式,哪一种最快?为什么?
14.线程切换涉及到哪些的切换?
15.线程唤醒是怎么被唤醒的?
16.口述链表倒数第 K 个节点
17.把你知道的并发类都说出来
18. java8 的currenthashmap 为什么弃用分段锁?
19.现在的 CAS 写入解决了什么问题?
20.说COW 数组
21.select 和 epoll 的区别
23.100 瓶药,有一瓶是毒药,老鼠喝了药可能今天死也可能明天死,怎么用最少的天数,最少的老鼠找出毒药?

迷惑行为

16 号面试只有官网查状态一直都是复试
22 号的时候邮箱突然收到一封邮件,点进去看居然是面试邀请,官网一查,好家伙
直接回到初试状态了,邀请我 23 号晚上面试
我问 HR,她说不清楚....
说可能是内部有其他部门看着简历合适试试看吧...
妈的你刷 KPI 你直说啊
草(指一种植物)
我写这个面经的时候是 24 好,又发一封邮件说把面试时间改成了 25 号下午

总结

除了 23 题全防出去了,最后他给我总结了一下,问我什么时候去实习,我说早鸟计划不是暑假去么?他说其实可以早点去的,然后问我两个星期能不能学会 Go,我说都 OK 的,他让我去补一补算法,说第 23 题要是思维稍微活跃一点的应该马上就能想到,我提示你这么多次你都想不到,你是不是想睡觉了啊?我说是,她就说那今晚就先这样吧。我又问后面还有没有面试,他说后面还有一轮 HR 面...

笔试题

笔试题就是 21 届秋招的原题
1.小Q给你两个降序排序好的链表,小Q希望你能求出两个链表的公共部分。公共部分是指在两个链表中均出现过的子序列。
注:需要自己处理输入输出,请根据题意自己定义,链表节点,相关函数
输入描述:
输入的第一行为第一个链表的长度n.
第二行为第一个链表的每个节点值val.
第三行为第二个链表的长度m.
第四行为第二个链表的每个节点值va.
1<=n,m<=1000000,− 1 0 9 < = v a l < = 1 0 9 -10^9<=val<=10^9−10
9
<=val<=10
9

输出描述:
降序输出一行整数,表示两个升序链表的公共部分的值。
示例输入:
6
6 5 4 3 2 1
5
6 5 3 2 1
示例输出:
6 5 3 2 1

2.小Q管理着一个大团队,大团队中有n个人,m个小团队,已知你每一个小团队里面的人数和每个人的编号(编号范围是0~n-1,一个人可能属于多个小团队,也有人可能一个小团队都不属于。)现在小Q 会下达一个通知给编号为0的人,所有和编号为0的人同属于某个小团体的人都会通过编号为0的人知晓这个通知,知晓通知的人会接着传达通知给自己小团队中的其他人,现在问你一共有多少个人知晓了通知(包括编号为0的人)。
输入描述:
输入第一行两个数n和m,代表有n个人,m个小团队
接下来m行,每一行第一个数先输入一个x,代表这个小团队有x个人,后面跟着x个数,代表这个小团队里面人的编号
1<=n<=100000
1<=m<=500
1<=x<=100
输出描述:
对于每组测试数据,请输出一个答案代表知晓了通知的人数。
示例输入:
50 5
2 1 2
5 10 11 12 13 14
2 0 1
2 49 2
4 6 7 8 2
示例输出:
7

3.小Q给你N个字符串,小Q希望你能统计出出现次数前k多和前k少(出现次数不能为0)的字符串。
注:对字符串字典序的解释:
1.字典序遵循的是逐字符比较的方式,越靠左的字符越会被先比较;
2.逐字符比较过程中,一旦发现某一对被比较的字符之间不相等时,这一对字符的大小关系即为这一对字符串的大小关系;
3.逐字符比较过程中,一旦出现某一个字符串的所有字符都已经经过比较,而另一字符串还存在未被比较的字符时,较短的字符串更小。
eg.“abc”<“abd”
eg.“abc”<“abcde”
输入描述:
输入的第一行为两个整数N,K.
接下来N行,每行一个字符串。
1<=N<=1 0 5 10^510
5
,字符串长度之和<=1 0 5 10^510
5
,1<=K<=1 0 5 10^510
5

保证K合法,字符串中只有数字和英文字母。
输出描述:
输出2*K行,每行哟欧一个字符串和一个该字符串出现的次数。
前面K行输出前K多,你需要按照出现次数由大到小输出,若出现次数相同时字符串字典序较小的优先输出
后面K行输出前K少,你需要按照出现次数由小到大输出,若出现次数相同时字符串字典序较小的优先输出
示例输入:
4 2
1
1
2
3
示例输出:
1 2
2 1
2 1
3 1

4.给n个数字a1,a2,…,an,其中n为偶数
对于每个数字单独删除之后,剩下的n-1个元素中位数是多少。
输入描述:
第一行,一个偶数n(n<=200000)
第二行,输入n个数字,第i个数字表示ai,ai在32位整数范围内。
输出描述:
输出n行,第i行表示删除ai答案之后,剩下的n-1个元素中位数是多少
示例输入:
6
1 2 3 4 5 6
示例输出:
4
4
4
3
3
3

5.小Q发明了一种新的棋类游戏:红黑棋。
这种游戏现在有2n个棋子排成一排,其中有n颗黑色棋子,依次编号为1~ n,n颗红色棋子,依次编号为1~n.
现在小Q进行若干次以下操作:交换相邻的棋子。
现在给出每颗棋子的颜色与编号,小Q希望你能用最少的操作次数,使得红色棋子的编号从左到右依次增大,黑色棋子的编号从左到右依次增大,颜色不一定连续。
请你求出最少需要的次数。
输入描述:
第一行输出一个数字n(1<=n<=3000)
第二行包括一个字符串,即这2n颗棋子依次的颜色,‘R’表示红色棋子,’B’表示黑色棋子。
第三行包含2n个以空格分割的数字,即这2n颗棋子依次的编号。
输出描述:
输出一个整数表示最少操作次数
示例输入:
3
BRRBRB
2 3 1 1 2 3
示例输出:
5
说明:
初始:
BRRBRB
231123
第一次交换:
BRRBRB
213123
第二次交换:
BRBRRB
211323
第三次交换:
BRBRRB
211233
第四次交换:
BBRRRB
211233
第五次交换:
BBRRRB
121233

答案在这里

我只写了三道题

写在最后

我现在心态都崩了,没有任何心情面试,期末考试也快了,学位证要紧...

他刷 KPI 就让他刷吧
年初给自己立的 flag 说年底之前一定要拿到一个大厂实习 Offer 看来要破功了

好好学习吧....

#实习##腾讯##Java工程师##面经#
全部评论
全部算法题?
1 回复 分享
发布于 2020-12-24 21:13
非科班的想问下 虚拟内存 swap 过程 这个问题是什么意思,感恩
1 回复 分享
发布于 2020-12-25 12:45
兄弟我应该跟你是一批的
1 回复 分享
发布于 2021-03-14 21:50
羡慕我做完笔试后就没有然后了
点赞 回复 分享
发布于 2020-12-24 22:22
想问一下,非科班的怎么解决项目问题
点赞 回复 分享
发布于 2020-12-25 20:22
牛逼
点赞 回复 分享
发布于 2022-05-08 17:40

相关推荐

点赞 评论 收藏
分享
牛客868257804号:九个中铁八个中建
点赞 评论 收藏
分享
7 34 评论
分享
牛客网
牛客企业服务