平行一面
两个问题
1, 输入年月日,输出该天为该年的第几天,
2, 输入一个数组和一个整数,问这个数组相邻元素之间相加减,可否得到目标整数
终面
三个问题
1, 给一个句子,按单词做反转(比如l love MS 翻转为 MS love I)
2, 旋转的有序数组,找指定的字符(只用返回能否)
3, 给定一个数组,再给一个目标值,问是否有两个值的和为目标值(只用返回能否)
感受
整体下来,感觉微软的面试非常重视思路,几乎每一个问题都会问能否再优化了,或者增删具体语句的理解。终面的时候面试官一直在强调,你可以不急着写,想想最佳思路。
终面之后,没有像之前的面经说的一样等很久,大概三四天就收到了最终的offer。
希望大家秋招好运,offer多多~
作者:Na1ve
链接:https://www.nowcoder.com/discuss/648274?type=post&order=time&pos=&page=1&channel=-1&source_id=search_post_nctrack
来源:牛客网
一面:
中文自我介绍
问项目
三次握手和四次挥手
hashmap和红黑树
算法题:给定一个整数数组,求出该整数数组能拼接得到的最大整数
这道题的核心思路是把整数按照”字典序“排序,所以把所有数都可以当作字符串处理,这个排序的关键是处理一个数字是另一个数字的前缀的情况
举个例子,59应该放在591前面,而596又应该放在59前面
但是当时脑子没转过弯来,写了一个及其丑陋的递归比较函数,如下 😂
1 2 3 4 5 6 7 8 9 10 |
|
标准答案是这样:
1 2 |
|
因为面试官不熟悉python,而且这个递归比较函数实在是很不直观,我花了很多时间解释代码并且测试正确性,整个面试就只做了这一道题,不知道一面评价如何
二面:
中文自我介绍
线程调度的算法
tcp和udp
数据库的ACID
c++的stl以及各种数据结构
这一段问了特别多,从vector,list,map,unordered map一路问过去,数据结构和c++的具体实现都有涉及,我就从顺序表到红黑树都讲了
八股文环节耗时有点久,这时面试已经过去快半个小时了,于是这一面也只有一道算法题旋转数组,需要新数组和原地旋转的两种都写了
3.30收到lead面邀请,3.31lead面:
中文自我介绍
深挖实习内容,最终暴露了我之前的实习完全是curd的事实
接下来可能算得上是传说中的系统设计题,给一个一元多项式,探讨各种储存这个多项式的方法
我就从数组,链表,哈希表,二叉树之类的各种方法都讨论了一下,每提出一种方法都要和面试官探讨使用这个方法的优缺点,从储存空间,查找速度,修改等方面都要涉及,指针大小之类的的细节都要考虑到
然后是写一个基于二叉树的多项式的类,要求实现初始化,加法乘法运算和打印结果的几个函数
lead面面试完一周后4.7收到信息收集邮件,4.14收到offer