微软中国(Microsoft)
北京市 · 计算机软件 · 500-999人
公司实力雄厚
A级纳税人
众创空间
经营产品·26

面试经验

“困难”
“体验一般”
1657 条面经
面试官有收获看中专业技能hr难度算法面试含英文微软英语2轮3轮及以上流程二面体验很好笔试技术自我介绍深挖项目简历电话面试
4259
Java
未通过感觉没戏
1面 1h  面试官是个93年的帅哥,真的是厉害!0.面试官介绍了一下面试内容流程,没错就是直接就开始写编程题。1.面试题是这样的,假设有3栋楼,每栋楼都有对应的高度,假设是(10,15,12),我们有升序排列的包裹,代号表示为(9,14,25,36),要输出包裹被deliver到第几栋大楼的第几层,这个意思就是假设包裹是9,就输出第一栋的第9层,19这个样子。14就是第二栋楼的第四层,24。以此类推。刚开始就只能想到暴力解法,把这三栋楼的数字分成区间 [(1,10),(11,25),(26,37)]这样一个三维数组,那么每个包裹的编号就需要看是否在这几个区间内,遍历每一个小区间,比较这个包裹的数字是否小于等于每个区间的最大值,如果成立那么我们直接输出这个区间的下标以及item-levels[i][0]+1,这样就可以输出第几栋第几层,但是这里的时间复杂度取决于区间的数量,也就是第几栋楼,而且要比较区间当中的数字,所以至少是O(k*2)的复杂度。那有没有更快的时间复杂度更低的方法呢?有,就是维护一个栈,由于我们的包裹编号是升序排列的,所以可以直接在这个区间就直接把之前的数字给pop掉,留下来的就是这个包裹,不停地pop掉,通过这个思路过程,我们只需要O(k)的时间复杂度。工程能力,算法数据结构实在太重要了,在微软考察的往往都是这些。2面 1h 面试官穿个运动裤就来面我了,说明还是很尊重员工的个性的哈哈哈0.直接在去会议室的路上就自我介绍的差不多了。。。1.讲了一下自己的无人机项目。2.问了操作系统的东西,内核态是什么(不知道),有没有写过并发的代码,有没有写多线程的代码来优化过自己的代码。进程和线程的概念,进程间同步与线程间同步的概念。3.做题,一个二叉树,定义N为有叶子结点的结点,L为叶子结点,那么给定一串前序遍历过的字符串假设(NNLLL),求这棵树的高度。这道题的解法就直接通过前序遍历的定义重构一棵二叉树,这个竟然给忘记了。。。我真的是菜,当场凉凉。总结:计算机基础要加强,代码能力就不说了吧,甚至对自己的能力还是有点怀疑的,对自己的期望降低一些吧,加油...查看更多
2 年前 发布
大三岁
Java
确定通过感觉靠谱
电话面时间:2.9 11 - 12时长:1h项目:面试官不熟悉项目和Java,随便聊了聊项目算法题:1.leetcode153 搜索旋转排序数组最小值2.leetcode347. 前 K 个高频元素(面试官只问了求前K大元素)类似 面试题 17.14. 最小K个数 (最小堆/快排(topN))一面时间:2.22 11 - 12时长:项目30分钟,聊聊算法题:1.leetcode210,拓扑排序II 二面时间:2.22 13 - 14.20时长:项目40分钟,随便聊问了下cache和mq的理解英语:自我介绍算法题:1.快排(口述 包括快排最坏和最好时间复杂度 怎么计算出来的)2.topk(口述 内存可以放的下 最小堆)3.一个无序数组,只能第一次分割成k个子数组,要求子数组内部合并后整体有序。求k最大值。(卡了30分钟,提示下先排序再遍历求和,相等时表示可以分割一次)三面时间:2.22 15 - 16时长:项目20分钟,聊了下对java线程状态的理解英语:自我介绍 为什么想跳槽算法题:1.给一张n*m大小的图,问查询的两个点k1与k2之间能不能消掉,消掉的条件是通过走没有东西的路径拐弯不超过两次到达目标点。(0表示没有东西,>1的物品表示相应的东西),并且不能够走外围。四面时间:3.2 10 - 11时长:项目20分钟英语:自我介绍 为什么想跳槽 项目介绍算法题:1.求数字1-n里面不包含数字3的个数五面时间:3.2 14 - 15时长:项目20分钟英语:自我介绍 为什么想跳槽 项目介绍算法题:1.数据流的中位数(求第90%的数怎么做,大数据量情况下怎么做,堆放不下)...查看更多
2023-11-20 发布
加载中
看准网微软中国(Microsoft)微软中国(Microsoft)面试经验微软中国(Microsoft)null面试经验

找工作