一面:
1. 反转单链表
2. 剑指offer 第一题 二维数组查找(二分优化)
3. leetcode1314
二面:
一个逗号分割的csv文件 转化成二维矩阵
考虑各种情况(双引号里有双引号,一行没有正常结束等) 状态机
三面:
文件1有两列,p和k string 类型,用\t隔开
文件2有两列,p1,p2,,,,pn和k1,k2,,,,kn 每列多个字符串用,隔开,两列用\t隔开
输出文件2中包含文件1行的所有行 哈希建索引
四面:
项目问题
T级别文件,M级别内存空间,全排序
一面
- 自我介绍
- 你觉得情感分析方向的难点在哪
- 介绍一下数学建模的工作
- 写题:扑克牌打乱顺序,要求空间O(1)
- 了解动态链接库和静态链接库吗?了解虚函数么?
- 假如我有一个exe,这个exe是根据一个cpp文件得到的,cpp文件里面有一个main函数,main里面有一句print函数,main函数之前会有一些变量,说一下从我的鼠标点击运行开始到这个main的return之后的全部过程。
- 写题:链表深拷贝(可能有环,可能无环)
- 反问
二面:
- 自我介绍(英文)
- 你的project中代码量多少(英文)
- 写题:给定一个sorted array,整型,要求输出缺失的数字。比如输入[5,6,7,11,13],输出8,9,10,12
- 反问
三面:
- 自我介绍
- 聊项目
- 说一个机器学习算法吧(说了决策树)说一下决策树的构建过程
- 做题:剑指offer 46,输出是所有的可生成的字符串,但是a是对应的1,所以要考虑字符串以0开头和连续两个0的情况
- 做题:判断一个输入字符串是不是有效的ipv4地址(要考虑很多情况返回False的,c++还有大数问题)
- 设计:假设我现在要设计一个扫雷程序,你觉得你要怎么设计?就是假如你要设计类要设计几个,分别有什么功能?
- 反问
- 你随便说一分钟英语吧,说什么都行
AA面
- 自我介绍(英文)
- 聊项目,也没深入
- 你比较看重公司的哪些性质
- 你对于backend的工作有什么倾向
- 你的strength,weakness,举个例子
- 你觉得你在team里面期待1~3年有什么收获
- 你的idea公司
- 写一个lock/mutex
- 两个sorted array,写找第K大的数,分析复杂度
- 反问
1)中序遍历二叉树非递归实现
2)整型数组中找出所有目标和三元组
不得不说微软的面试真的太舒服了,表白面试官小姐姐!超级无敌温柔,声音也太好听了
1)二叉树的最近公共祖先
一面:自我介绍,问项目,问python的一些知识,装饰器,import等,出题,二叉搜索树中求大于target的第一个数,用了多种解法做
中序遍历,发现当前节点大于target就返回,(递归,或者非递归)
二面:自我介绍,问项目,代码实现矩阵乘,GEMM中的一些优化,算法题:最大数组和
做题
LeetCode 124. 二叉树中的最大路径和
设计测试用例
有n个二维平面上的点和距离d,将它们分成k组。
若两点间的距离小于等于d,则这两个点在一组;如果点A和点B在一组,点B和点C在一组,则点A和点C在一组。
算法返回每个点所在组的编号(0..k-1)
第一道题:字符串流,判断是否是合法的IPV4地址
第二道题:数组中出现次数超过一半的数字(剑指offer原题)
一面的话是自我介绍然后面试官对其中哪个点感兴趣的话会打断一下详细问一下
然后开始做题, 题目是找到一组柱状图中最大矩形的面积
我先说了一个思路把面试官绕了进去,然后他说好像可行,那你写代码吧
我代码写到最后一个栈操作的时候面试官说,我觉得你这个思路有反例,好像不行
我:嗷,那就分治法吧balabalbala。仿佛再一次把他绕了进去
他:好像确实能行,就是有点麻烦
我:嗷嗷
然后邮件通知一面过了,第二天下午13:00二面lead面,如果二面通过就15:00老板面,如果二面通不过就没力
我:嗷
lead面先自我介绍然后开白板做题目
第一题是数字三角形找最大和路径
用动态规划写的
第二题是二叉树中找两个节点的最近公共祖先节点
用前序遍历然后对比找最后一个相同的节点
三面AA面
一面(3.19):
一面是在中午,面试官是个很温柔的哥哥?,感觉很年轻。因为一些原因面试官上线迟到了20分钟,所以整个过程很紧凑,惯例做题:
1、单向链表交换奇偶节点
比较简单,考虑了一些边界情况,还特意美化了一下代码hhh,面试官看了一下就过了
2、TopK问题,没有时间了就不用写代码,口述思路
从简单到复杂:先说了冒泡排序和插入排序,随口说时间复杂度是O(kN);然后说堆排序和快速排序;最后扯了并行计算。
说完后面试官问了TopK快排的时间复杂度,我写了算式,算到最后一步脑子抽筋等比数列求和都没算出来,紧张的不行,面试官安慰我说没关系,还跟我说其实有公式(这两天上课我才知道有主定理这个东西,后悔ads去年没选上/捂脸)
最后的最后聊了会儿天,没有怎么介绍微软,倒是给了我一些读研和工作的建议(我以为挂了结果过了)
Lead面(3.26):
Lead面据说是最终工作的组的老板,感觉很耐心很专业,惯例做题:
1、最大子序列和
非常非常经典的题,如实说自己做过,10分钟写完了
2、取整问题
例如3.14取整到3.1,3.15取整到3.2,3.25取整到3.2,3.取整3.3。先说规则以及为什么要这么取整。然后码代码,给float和取整位数n。
一开始说float乘10幂次判断,两个问题是超过范围以及float不能比较,超过范围很快说了解决思路,不能比较面试官说这里忽略这个问题。最后写的时候有个小技巧最高位进位不处理,面试官指出了这个问题,我说明了我的思路(不处理进位也没关系hhh心机)。然后边界情况也是照例考虑。
两道题做完才30分钟,面试官说太快了哈哈就问我有什么问题,然后聊了研究生本科生的差异之类的,最后40分钟面试结束。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/173459.html原文链接:https://javaforall.net
