首页 > 2021.3.5 腾讯 软件开发-后台方向 二面
头像
Pyke
编辑于 2021-03-06 16:09
+ 关注

2021.3.5 腾讯 软件开发-后台方向 二面

距离上次一面已有好多天,可以看上个帖子
3月4日收到面试邮件
今天面试
上来先问实习有什么心得体会,我实习的是测开岗,问我代码覆盖率(真没听过),面试官以为我做过白盒测试。
压力测试怎么做的,压测流程,找出bug之后是研发人员改的?自己没改过???
问我毕业论文是哪方面的,你学的课程偏硬件多一点还是软件多一点?
问项目,zookeeper如何保证数据一致(回答ZAB协议)
Netty模型,reactor什么情况下不适用,如果这有这种场景该怎么设计?(我直接吐血)
看到我有个电商APP的项目,开始问秒杀(可是我真不会秒杀,而且我在这个项目里是做订单的),大量用户买一个商品,怎么防止超卖(我TM真不知道,饶了我吧)
我说我没处理过这种情况,面试官说:没事,现在脱离于你的项目,就让你设计一个秒杀,你怎么做(我实在没办法,只能说加锁)
又问结合你这个电商APP用了你写的RPC框架,现在有很多请求,你这个怎么处理(答:搞成一个分布式的,负载均衡)
夺命追问:那你要怎么实现每个服务器的数据一致(答:zookeeper的分布式锁)又问你是在zookeeper实现的吗?我说redis也有分布式锁,但我没了解过。
再问:现在你有100台机器,负载均衡也不管用了,你怎么办?(答的啥忘了,最后问面试官您是想问服务熔断,服务降级这块吗)(我TM。。概念倒是会,这结合实际我也不会弄啊)
上面你说了锁,你知道Java里面有什么锁。
重头戏来了,你说到了读写锁是吧,要是让你实现一个读写锁你怎么实现(我说持有写锁,就阻塞其他读写操作,持有读锁,只允许读操作)
那好了,按照你刚才说的,你写一下代码吧。(到这我已经崩溃了,啥???手写读写锁)
如何设计一个定时器,让一个程序等指定时间,接着运行。(先答了 wait( ),面试官不满意说你这个要是等一天那不是其他工作也不用做了?,后面答用轮询,双向链表,最后他说想一下调度算法)
LeetCode刷的多吗?
成绩怎么样,20%多,没保上研吧。(我吐血+1)???
如何判断链表🍌(靠,我以为🍌的是一个点,MD结果是从🍌的地方开始后面全一样,所以这个讨论了好久,又问我退出循环的条件,最后不了了之)
了解什么排序算法,balabala
第二个重头戏来了,快排稳定吗,为什么不稳定,要是让你设计一个稳定的快排你怎么设计????(我直接好家伙)
那按照你说的这个思路,把代码写一下吧,要有结果,还要证明是稳定的。
最后面试官耳机出现了问题,说话没声音,重连了一下,说你写的这个我看了一下,没有大问题,验证稳定的话要用一个结构体。
转语言没问题?工作地点没问题?
反问
奶奶的,面了两个小时,直接把我搞萎了。
很多答的感觉面试官不是很满意,估计要凉,不凉就倒立拉稀【手动狗头】
-------------------------------------------------------------------------------------------------------------------
小更一下,关于上面那个链表🍌的问题
我现在了解到链表相交有两种形态,一种是X型相交,一种是Y型相交
我面试的时候以为是X型,X型那么题目(或者测试用例)理想的情况下,两个链表要么没有相同的一个点,要么就只有一个相同点。
那么这种用快慢指针很好实现,就不多说了。
现在再来说说一下Y型的相交链表,两个链表从一个节点开始后面全部相同,面试官想问种情况。他说可以把两个链表连起来,那么就相当于判断一个单链表是否存在环。
今天我又在网上查了一下

大概是这样的,这种Y型的相交链表默认是A链表和B链表后面相同的部分是同一种引用。连起来的操作就是将c3与b1连起来,然后就形成了一个环。
那么问题就来了,在初始化两个链表的时候,虽然两个链表中可能有值相同,但是他们的内存地址不同,根本不是相同的引用。那么上述连接起来判断有环的操作无法操作。
除非,你给我的测试用例就是上面这个图画的这样,构造完就是这样,但我觉得这实在是不能叫做两个链表。
仅仅让面试者判断“给你两个链表,如何判断他们是否相交”这种说法是很不负责任的,什么前提条件都没有,两条线相交也交不出Y型这种情况吧。
最后,如果仅仅是判断相不相交,上面两种情况仅仅只是交点数量不同,所以不用判断有没有环也能做,返回的只不过是一个布尔值。
但是如果让你输出相交(而且还是按顺序的)的节点,还是得考虑一下。

更多模拟面试

全部评论

(8) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐