时间线
- 2020-12月末
- Google SWE Intern投递(内推)
- 2020-1月中
- 腾讯云存储 SWE Intern内推
- 一天后 一面挂(原因据说是我在面试中说可能要读研?)
- 2021-1月末
- 微软苏州SWE Intern官网投递(无内推)
- 2021-2月初
- Google拒信,第二天又发interview invitation,然后又不安排?看来是HC满了,把我当备胎。。
- 华为2012实验室香港研究所投递(校招)
- 微软一面挂与不挂之间的状态(因为一二面平行)
- 同一周 二面通过
- 2021-2月中 春节 一切面试停摆
- 2021-2月末
- 微软终面 offer√
- 华为两天三面 offer√
- 字节跳动(上海抖音音乐)内推
- 2021-3月初
- 字节被北京商业广告部门先看到,初面
- 字节二面
- 字节三面 offer√
有了去年的经验,今年的我早早地开始了春招实习生的申请。想要快点拿到至少一个offer,以来让自己不要太焦虑,而来早点从各种面试中脱身,做一些真正有意义的事情。
面试题
以下的总结都是算法题,计算机基础知识都没怎么问or记不清了。
- 腾讯:
- k个为一组翻转链表(简略代码)空间复杂度尽量常数
- 二叉树中的最长路径
- 微软:
- 手撕Heap Sort
- 给一个数组,找到一个i,使A[i] = i
- 给一个链表,返回最中间的k个节点组成的数组。(更看重工程上的易调用性)
- 华为
- 链表求是否有环
- 链表找两个节点的公共父节点
- 字节跳动 (问了一些有意思的计算机基础)
-
Java中final,finally,finalized分别是什么作用?
-
说一下JVM的内存构成? 答案
-
多态的基本原理
-
说一下一些常用的排序算法
-
手撕快排
-
找到一个数组中的最长子序列和
-
Java异常处理?
-
手撕归并排序
-
算法题:股票的最大收益
-
说一下递归和迭代的异同
-
给定一个矩阵n*m,矩阵中的每一行都是按从大到小的顺序排列,问如何找出矩阵中前K大的数?
这道题我开始给出了n个指针的办法,就是用n个指针指向的数字构成大根堆,然后不断弹出再补全即可。后来面试官规定只能用小根堆。经过提醒得出以下方法:
开始的时候先用每行的前几个数构建长度为n的小根堆,然后再以根顶的元素作为比较,不断去筛选每行中剩余的值,值得注意的是,如果一行中剩下的第一个元素都比该堆顶小,那么这一行就可以被剪枝。
-
可以看到,这几个大厂的的算法题几乎都是Leetcode简单到中等的难度,所以不用担心,只要刷题到位了,offer就是手到擒来的。
That’s all.