字节跳动后端三面面经 人生第一个三面orz

从2月份开始边投边复习,不知不觉到现在已经面了一个月了。。
字节这场是我第11场面试,也是第一次进三面,希望可以上个岸🤣在池子里泡的太苦了

一二面见 https://www.nowcoder.com/discuss/380550

正片:
你是不是上个月投过一次字节?你觉得为什么被拒了。。🤣。。。(凉经见https://www.nowcoder.com/discuss/371292)
我说可能因为算法题没想出优化,只写了暴力。面试官感兴趣的ES也不怎么懂,都是拿来就用
面试官:那来看看这个题吧
LC 22 括号生成 https://leetcode-cn.com/problems/generate-parentheses/
这题其实我之前刷LC的时候做过。。大概讲了一下怎么递归:当前有左括号仍未闭合时,可以选择继续加左括号,也可以加右括号;当前没有左括号未闭合时,只能加右括号,否则就非法匹配了;当左括号、右括号全部用完时,说明到了边界,记录一路上添加的括号并输出

面试官:如果你有4G内存,保存所有结果序列而不是直接打印,你觉得K能开多大?
我:这就要求出K的时候序列一共有多少个,想了很久没想出来到底怎么用K表示
面试官:那你估一下它大概是什么级别?我蒙了个2^N(应该不对)然后列了个不等式算了一下K的取值

面试官没说什么,直接进入第二题:
一个升序排列(允许有相等元素)的链表,将最后一个元素指向开头元素形成一个环。现在任意给出一个环中的节点引用,并给定整数K,要求实现一个insert函数,将K插入到合适的位置上
我第一反应是要找到原链表的表尾,也就是p.val>=p.next.val的那个节点,面试官说你一定要找这个交界点吗?
分类讨论了下,发现K大于初始节点值时,一直搜到表尾即可;K小于初始节点值时,先找到表尾,然后从表尾之后找地方插入节点
面试官提示我的while循环有问题,我发现我的循环跳出条件是p.val>p.next.val,如果原链表只有一个节点,那么我永远会因为p和p.next值相等而死循环
我说那就加一个p.next!=p,面试官又说这样不能解决问题,比如仅包含两个相同元素的链表,4->4,你还是会死循环
所以问题就落到怎么解决原链表所有元素都为同一个值的情况,我想了很久只想到保存初始节点的引用,如果循环过程中又回到初始节点,说明这里已经是表尾了,且整个链表仅由多个重复元素组成
面试官问还有什么别的方案么,我想了五分钟没想到,他说已经一个小时了,就到这里了。

反问环节:
部门业务具体做些什么?大概是To B的图片素材收集、管理和销售
刚刚那个链表的题,特殊情况到底怎么搞?面试官:你问我没意义啊,我肯定会啊😂我说好吧我回去和舍友讨论下

总结:果然字节还是非常看重算法题,我面了五场,没有一场是不用做题的,大家如果投字节一定要非常重视这方面训练,题不一定难,但是要保证自己吃透思路,能顺利手撕



#字节跳动##面经##实习##Java工程师#
全部评论
老哥,什么叫做K能开到多大呀?木有看懂呢
1 回复 分享
发布于 2020-03-18 22:11
呜呜呜楼主想请教一下为什么面试官都这么看重手撕吗有思路但是没有完全实现也不行吗
点赞 回复 分享
发布于 2024-10-25 13:36 广东
链表断开不就行了...
点赞 回复 分享
发布于 2020-03-21 00:24
老哥,手撕代码是要自己写测试用例吗?
点赞 回复 分享
发布于 2020-03-21 00:16
老哥有回复了吗。我一面二面都是过半个多小时就回复了,三面现在已经过去两天了还没收到通知,也没有拒绝信
点赞 回复 分享
发布于 2020-03-19 10:15

相关推荐

05-30 18:54
武汉商学院 Java
湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
评论
7
50
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务