(后端实习)字节跳动+腾讯面经(已拿字节offer)
更新:算法题简要题解
wxg一面
1.topk问题:堆
2.复制二叉树:先遍历一遍,复制一棵普通二叉树,然后用unordered_map映射两棵树的对应节点,在遍历一遍给随机指针赋对应的值即可。
3.感觉是acm风格题,题意具有迷惑性,看破后就是预处理+多重背包
csig一面
1.地雷生成:将n*m个格子放入vector,然后洗牌算法打乱取前k个即可
字节跳动一面
1.leetcode 152
2.leetcode 853
字节跳动二面
1.先二分出k的位子,然后这个位子开始二分左边有x个,那么右边就有k-x个,根据这个情形是否是我们需要的答案就可以判断了。
2.栈+dfs+时间戳标记
3.裸的ac自动机
换部门一面
1.大整数加法
2.leetcode 470
3.面试官说是网上有,表示没找到,我的做法是unordered_map统计每个串出现次数,然后讲次数排序就得到了前k大的次数,因为要严格按照顺序打印,(例如k=1,但是出现次数最多的有两个字符串),所以再去遍历原string数组,然后查看这个string的次数是否属于前k大,(这里可以维护一个mutil_set),找到就删去即可。
换部门二面
1.leetcode三数之和
2.leetcode双指针
3.直接dfs大力搜,可以给面试官分析一下复杂度,因为每个格子除去移动过来的方向,只可能有三种方向,那么整个dfs树可以看成是一个最多只有三个子节点的数,并且越搜索到后面其实会越窄,深度最多4*4
,所以上界只需要计算一个等比数列 1 3 9 ....,而且这个上界距离实际复杂度非常的远。
换部门三面
表示第i步走到(j,k)有多少种方案,最后统计出所有合法方案,除4^k即可,需要滚动数组优化一维空间。
因为是做ACM的,所以此面经可能对于大多数人不具备参考价值,但牛客还是有不少acmer的,所以还是写了一下。辛辛苦苦啃基础书看牛客面经,特此还愿。
年后开始投简历,方向是后端开发,字节是小伙伴内推的,腾讯是想做游戏自己官网投的。
微信后台开发
wxg面试官先打了电话问是否有意向,可能是因为官网投的互娱,肯定同意啊,然后面试官介绍他们是微信后台开发,说了下具体干啥的,聊了快有半个多小时了,感觉他们很重视,所以对腾讯特别有好感,然后约第二天下午面试。
wxg一面
每题都是写完,面试官看一遍然后讲一下复杂度,最后才知道面试官是好几年前的金牌。。。
1.topk问题
2.给定一颗二叉树,每个节点都有一个指向树上随机节点的指针,拷贝这棵树
3.给定一个长度n的数组A和一个数k,问你能否从数组A中取出若干个数使得它们的和为k的倍数。就是整除的意思。
n[1,1e6],A[0,1e9],k[1,2000],时限两秒
做法:处理一下数组A,每个值mod k然后统计次数,再做一个可行性背包就行了,因为考虑到次数很大而且面试力求表现,写了二进制优化。
然后瞎聊天,聊得很愉快
官网状态更新复试。。一直等然后有一天就灰了
腾讯第一次鞭尸,csig健康事业部
也是先打电话约第二天面试,面试官最后还特地提示好好准备哦!
一面
1.扫雷地雷生成,n*m矩阵生成k个雷。
2.输入网址回车到显示页面的过程
3.讲一下c++内存
4.虚函数了解吗
5.写一下多态,然后围绕着这个展开问了很多
6.stl了解吗?push_back复杂度证明,扩容机制
还有一部分不太记得了,抱歉。
二面
效率很高,上午面完下午就约晚上二面。
没想到这次不走寻常路,准备的完全没用。。。。
1.面试官:看你是做ACM的,你在这个过程中有什么总结吗?
我:没太明白他想问啥。。就随便说了一下自己的经历。
面试官:不不,我指的是对于一类问题有什么总结之类的吗?
感觉答的不太好。。。
2.面试官:竞赛中,你在团队主要负责哪些方面呢?
我:数据结构,图论,dp,这些比较擅长把,数论筛法都分给了队友,其他方向基本我也可以。
面试官:那我问你个题吧,给你两个队列一个栈,栈是空的,问你能不能把其中一个变成另外一个
我:(一开始脑子短路了,以为队列只能出队进栈,然后出栈进队,利用栈去完成。)想了一会儿感觉只能模拟,就说了应该模拟就可以,给他说了咋做。
面试官:我们可以先看下元素是否满足要求,其实可以直接判断他是否可行的,你再想想
我内心:。。。我默认元素集是一样的啊,想了一会儿想不到了。。。
面试官:其实无论如何都是可以完成的,这个后面你可以去网上查一下。
我:内心吐血(啥玩意啊,面完才想通了,一个队列自身出队再进队,这样相当于移动了元素的位置,然后直到另外一个队列的队头相同就可以把这个放进栈里存起来了,问题是我脑子想当然限制了这些操作,默认以为只能出队进栈,出栈进队,有苦说不出。。。)
3.面试官:看你给学弟讲过课,你给我讲一个算法吧。
先给他讲了一下迪杰斯特拉
面试官:讲的还可以,但我是会这个算法的,所以我听得懂,balabala
下面就是瞎聊了。
4.面试官:再问一个工程上的问题吧,在一张图中有两个点,他们之间什么情况我们统统不知道,你怎么去找到他两之间的道路呢。
我:想了半天也没憋出什么来,双向bfs?dij?条件太少了吧。。。。胡扯了一下
面试官:你听A吗?
我:。。。。。。当然听过,给他说了一下A的思想,然后解释了一下因为A的估值函数不好找,所以竞赛中一般不怎么用。
面试官:工程上这是非常有效并且实际使用的一个方式,然后解释了很多。
5.对未来的职业有什么规划吗
反问环节,聊天。
感觉面得很烂。
不出意料第二天灰了。
腾讯第二次鞭尸
没打电话,直接邮箱收到了面试邀请函,上面写的是业务运维??????
直接拒了
字节后端开发一面
1.dp最大连续子序列乘积
2.给定n个车的初始车速,方向是相同的,问过了无穷大时间后,有多少堆车。
3.证明一下push_back复杂度
4.unorder_map,map区别,然后延伸到了红黑树,追问了一些细节
5.瞎聊
一面自我感觉非常的烂,因为是第一次面试,非常紧张,前面两个简单题目浪费了很久。小伙伴是他们部门的,所以还是给了二面的机会(感谢小伙伴的大面子)。
字节后端二面
1.给定一个升序数组,再给定一个k(在数组中),找到离k最近的c个数中的最大最小值。意思是和k绝对值的差最小的那c个数字,c可能会特别大,要求最优解。
2.描述了一个业务场景,然后面试官编不下去了,直接说给你一个有向图,输出所有的环。
3.又开始描述场景了,说头条会有很多的用户评论,但是有一些敏感词是不可以发出来的,我们有这个敏感词的清单,如何去检索评论里是否包含敏感词。
4.说一下虚拟存储器吧。
5.聊一下竞赛的看法,给我介绍了一下部门对实习生的情况
6.瞎聊
字节后端三面
改了两次时间。。。。然后和我说部门没hc了,感觉还是自己太菜了。
hr说感觉挺对不起我的(猜测是朋友的面子,毕竟是一个部门),主动说可以帮推荐给其他hr看看。
换部门重新面试
一面居然是个小姐姐,万万没想到
小姐姐特别态度特别好,气氛全程都很轻松,五星好评
1.说一下数据库的索引吧
2.数据库主键xxx,数据库xxxxx
(数据库还没复习,简历也没写啊,球球姐姐您别问了),统一回答都是不会,
但是我准备了数据结构所以把b树,b+树,b*树都给讲了一遍。估计姐姐看我都快自闭了,说问点别的吧。
3.用过ping吗, 是什么协议
4.数据链路层是干嘛的
5.TCP挥手为啥是四次
6.知道syn泛洪攻击吗?有什么处理方案吗?
7.输入网址到显示页面的全部过程
8.arp协议是咋样的,有安全问题吗?具体是怎样的?
9.https知道吗
10.https的连接过程,这个说的非常详细、非对称加密、对称加密、hash、证书、握手信息。
11.证书机构名字是啥? (黑人问号脸,回答了CA)
12.知道哪些加密算法?
面试官:我们来做点题吧!(终于来了),看你表情很期待吗?
我:挺期待的。
1.大整数加法
2.random7构造random10(翻车了,回头网上查了一下感觉很巧妙,没做过真不会。)
3.给定string数组,严格按照出现顺序打印出现次数前k多的字符串,复杂度最优
第三题我的做法小姐姐没理解,然后给了个案例我两一起走一遍。小姐姐明白后说:哇哦,这样也可以。
二面
二面面试官挺好的,评价说我是他面过的候选人里coding能力数一数二的。
1.有很多处于close_wait的tcp连接,分析一下原因
2.继续说一下处理方案
3.全双工、半双工、单工说一下
喜闻乐见的写题环节
1.打印数组中三个元素相加为0的组成方案
2.找出字符串中最长的不重复的连续子串
3.4*4的带权矩阵找从(0,0)到(3,3)权值和最小的路径
4.聊对竞赛的看法,问为啥想来实习
回答:打竞赛也要恰饭的。面试官一脸憋笑。。。
5.对于工程和竞赛不同做好了心理准备吗
聊天
三面
感觉是个大佬,气质和谈吐非常流弊!
互相自我介绍,受宠若惊。
然后让我自己说了一下前两面都问了啥,自我评价一下自己前两面的发挥
然后聊了一会儿。
喜闻乐见写题
1.给定n*n的矩阵,一个坐标(i,j),再给一个k,问从这个坐标走k步没有走出矩阵的概率是多少。
写完解释一下思路,然后问了一下可能存在什么问题,int可能会爆,最后计算概率会有精度误差.
面试官:算法题对你应该不是问题,前几面面试官对你评价都很优秀,看你数据库不太行,我们来设计数据库吧。
2.教师、学生、课程、教室。
要求查询学生课表、老师课表、教室安排情况。
磕磕巴巴给写出来了,被挑了很多问题,并且从简单的情况拓展了很多,大概就是数据库三范式的要求吧。
面试官:你算法底子非常扎实,的确是做竞赛出身的,但是工程上的能力我觉得距离实际工作还有一段距离,听到这里有点难过以为要挂了。。。。
后面就是聊能实习多久,啥时候来,如果你实习表现ok我们给你正式校招offer你愿意留下吗,讲了很多。
然后瞎聊。
三面面试官说第一题对我的预期是10分钟搞定,还好勉强完成。。。。
hr面就问了入职时间,能干多久,转正愿不愿意留下,介绍了待遇,10min
10min后,发offer,这个真的有被吓到,因为看牛友都是审批啥的
没了
以上都是凭记忆写的,有遗漏请多多包涵。
#字节跳动后台面经##字节跳动##腾讯##实习##C++工程师##面经#