同步更新
https://ac.nowcoder.com/discuss/420375
此段置顶:
办公地点在上海市闵行区宜山路2000号利丰广场,有没有哥哥知道旁边哪里有房子可以租,或者有没有合租意向的哥哥,蟹蟹(答主性别:男)
由于疫情延期开学,在同学的怂恿下,在三月底尝试投了一下腾讯和字节跳动。
感谢牛友们的面经,这一个月学到不少基础知识,┭┮﹏┭┮
1、自我介绍
2、输入url到显示这个页面过程
3、https和http的区别
4、C++内存区域的划分,堆、栈的理解
5、new和malloc的区别
6、字符串怎么存储的
7、list和vector区别
8、Map和HashMap优劣,查找的复杂度
9、C++面向对象的三个特征的 封装、继承、多态 是什么、用途、怎么实现。菱形继承可以吗,为什么
10、计算机网络分层模型,各层用处
11、TCP和UDP的了解,优劣,应用场景,三次握手四次挥手
12、客户端开发了解过吗 ios Android Mac
喜闻乐见 手撕算法题(口胡)
1、给你一个rand5函数,让你实现一个rand7函数,追问,给你rand5和n,实现rand n(rand5 实现 rand n是真的没想到怎么做)
2、topk,出现次数最多的 k 个字符串(秒)
3、简单dp,n个箱子每个箱子一个val,不能取相邻的箱子,最大价值(秒)
由于是第一次面试,没有准备,计算机网络分层模型也忘了。
大概是由于算法题口胡的还可以,所以给了一面机会吧。
自我介绍
上来先手撕代码
1、在数组中二分查找某个数字,不存在返回 -1,秒,追问,可能有重复值,找最右边的值并且解释了一下思路(秒)
2、若干个人,每个人一个年龄,选一个时间复杂度最低的方法排序(先说了快排,然后说桶排,秒)
这里给自己挖了一个坑,面试官给的是vector
1、static作用,用static修饰成员函数呢
2、inline作用,为什么可以优化,和#define宏定义有什么区别
3、多态是什么,静态多态和动态多态,引出虚函数和虚函数表,表长什么样子
4、堆、栈的区别,存放数字的话,哪个效率更高(这里扩展了一些应用场景)
5、问操作系统和计算机网络学过吗?学过!进程和线程的区别(我:不知道)
估计这个时候面试官都无语了。
6、用过多线程吗?同步和互斥听过吗(没有)
面试官无语+1
7、输入url到显示页面的过程,涉及到哪些网络协议
8、TCP和UDP区别,扩展到拥塞控制,累计确认等等
9、window消息处理机制
反问:
1、你觉得我和这个岗位要求的差距在哪里,或者说不足在哪里
面的有点心态爆炸,除了手撕代码和第九题会,其他基本都不会或者只答了一点,果然,下午一看灰了
然后中间被腾讯捞了两次,一次给了笔试题,让拍下自己答题的过程发回去,我一拿到题人都傻了,全是应用题,没有一个算法题,果断咕了
另一次有点迷之操作,某天下午腾讯hr打电话来问有时间吗,电话面一下,然后我说明天吧,hr说ok,然后hr的电话在4-5天后才打过来
期间hr没有给我说过或者发过换时间之类的消息,然后hr打电话来问有时间吗,当时在上课,说现在没时间,然后下课一看,灰了。
4月3号下午,字节跳动hr说一二面约在14号可以吗,因为人有点多,排到后面去了。由于有了腾讯的前车之鉴,买了计算机网络自顶向下方法,高性能mysql,深入理解计算机操作系统和编译原理,每天对着牛客面经学习一些基础知识。
由于字节跳动的忘记录音了,尽量回忆一下。
自我介绍
手撕代码:
1、给二叉树的前序遍历和中序遍历,还原二叉树并输出后序遍历。(秒)
2、给出链表 1->2->3->4->5,输出 1->5->2->4->3,就是输出一前一后的遍历顺序,要求空间复杂度 O(n)
想了半天不知道怎么还原,给出了一个复杂度较高的做法,中间面试官提示了一下,没明白他的意思,然后面试官让我实现一下我的写法,然后我写了个递归每次取前一个再取后一个,遍历长度/2 的次数,直接返回链表后顺序输出。
3、给n个篮子(不是环),每个篮子ai个苹果,每次只能移动一个苹果到相邻的位置,求每个篮子苹果相等的最小操作次数,只要求说了代码思路(前面直接说了一个错误贪心方法,然后在面试官的提示下改对了思路,没让写代码)
1、事务是什么,四个性质,索引和联合索引,引擎有哪些
2、抖音实现关注和被关注,数据库怎么建表
3、问了一下TCP、UDP区别
然后听到面试官离开了房间,我觉得我二面都没了,然后就在座位上自闭,然后过了10分钟,二面面试官进来了
自我介绍
手撕代码:
1、判断一个数是否是完全平方数(秒)
2、给一个数开根号,小数点五位(秒)
1、打ACM竞赛碰到的最大挑战
2、淘宝天猫经常放出大量优惠卷(满200减100),其中有些优惠卷只能用于指定商品,怎么求出最大的优惠价格
3、服务器负载均衡怎么实现的,分布式系统呢
4、TCP、UDP区别,三次握手四次挥手
现在还有时间,我们再来个算法题吧(我:一脸期待)
一个射击运动员打靶,靶一共有10环,打10枪打中80环的可能性有多少种(秒,让说了一下dp的思路)
二面的时候感觉自己应该有三面了,因为面试官对我的算法和代码水平给予了较高的评价?反正就是感觉应该有三面了。然后次日接到三面通知了。由于前面几次都有些基础没答好,二面到三面之间在恶补基础知识。
跳过自我介绍
1、给一个矩阵,求最长下降路径长度。(从小到大排序,遍历一次,或者记忆化搜索)
2、有n个人,这些人之中有m个红帽子,剩下的人都是白帽子,每个人可以看到别人的帽子,这些人之中一定有一个红帽子,如果这些人知道了自己的帽子颜色,他们就会离开,问这n个人什么时候离开(从1个红帽子推到第2个红帽子,然后同样的思维应用数学归纳法)
3、输入URL到显示页面的过程
4、有什么爱好吗,然后随便聊了一些
先通知面试全部通过了,然后问了一下什么时候能来,实习多久,本科毕业是否工作,然后讲了一下有转正机会,然后offer要审批,节后审批好了会联系你。