一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 596|回复: 8
收起左侧

MS 11/14 hiring event

[复制链接] |试试Instant~ |关注本帖
gangyang75 发表于 2016-11-16 01:47:00 | 显示全部楼层 |阅读模式

2016(10-12月) 码农类 硕士 全职@Microsoft - 内推 - Onsite |Other在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
14号微软的Identity的hiring event,参加的是上午的那次,111大厅里人很多,但是分成了估计是4种颜色在胸牌上,红色的一批先被带走面试。那波大概20个左右。上来先是几个manager把大家集合,介绍一下流程,介绍有几个team的信息,当天好像有三个team招人,然后给大家鼓劲加油。最后分别被带去房间进行面试。
第一个是美国老头,挺和蔼,也比较好交流,前面大部分时间在跟他扯我的项目,问了很多涉及到项目的相关技术,比如数字签名是怎么回事,怎么生成怎么验证的。 画了项目流程图,感觉交流的还不错,面试官一直给予肯定回应,自己说起来也比较有信心。后面剩20分钟,出了个lc138, 面试官说可能时间不够,说说思路也行,我就直接把最优解写出来了,面试官指出一个小的bug, 没检查node.next是null的case。 总体感觉这轮挺不错,让人面完之后意犹未尽,还想继续和他聊下去。
. 鍥磋鎴戜滑@1point 3 acres
第二个是个年轻的国人小姑娘,说自己工作三年了,我觉得应该都别我小,后来一问是本科毕业就来ms工作了。一开始也是说让我说自己做的一个项目,几乎跟上一轮差不多的说了项目,但是没有那么深入跟详细,很快进入做题。题目描述的是一个分拣包裹的机器人,有5个功能,1,getType 得到当前包裹的类型,2,getNextType,得到下一个包裹的类型,3,Swap() 交换前后相邻的两个包裹,4,GoToFirst 回到队列的最开始, 5 MoveToNext 移动到下一个包裹。 要求把包裹按照相同的类型排列在一起用个HashMap给每个类型定个排序,按照这个次数bubble sort,每轮都扫一遍,一共扫n轮,问怎么优化,我说每轮记录一个最后改变的位置,下一轮就扫之前的就可以。后来跟别的面试者交流,说她还有更深的follow up,比如可以swap当前和任意一个位置的package 该怎么改进,可能就要用到partition了。后来我想了一下, 这个不就是跟sort color一样么。感觉除了交流还行,题答得真不好

第三轮,是最开始给我们介绍team情况的大manager,像是个欧洲人,没聊多久项目,说怕时间不够直接进入做题。后来才知道,时间连思路想都想不到。。面试官说找missing numbers,我还以为是leetcode原题,后来压根不是一回事。 给出条件1,n size的数组 (可以有null)。 2. 数字大小在1 - n之间。3. 在数组任意位置都可能有null, 4, 数字都是严格按照递增的,没有重复数字。 要求,1, 找出所有missing numbers在1-n之间数组里没有的,2, 尽量减少对数组的读取(每次只能读取一个位置上的数据)。 brainstorm 什么2分法,什么two points,什么bitmap,都没达到减少读取次数,跟以往算法追求低时间或者空间复杂度不一样,这题要求的利用好best case。面试官提示了3种best case可以减少不必要的读取。读到最大值,后面的元素就不用读了 4 null null null, 读到最小值,前面的值不用读了 null null null 1. 读到两个相邻的值,中间的不用读了 2 null null 3. 还是不会,最后最后提示,说可以随机读一个位置。还是不会。等面试结束了,对着白板才想出来思路。 ---> 其实用的是divide conquer, 也可以理解为dfs,随机读一个位置,然后分成两个部分,假如读到位置有值,update 前一个部分的最大值,和后一个部分的最小值,假如一个部分最小值大于等于最大值,这个部分就不用再找了。最后记录missing numbers的时候可以比较暴力,因为不是考察重点,可以用一个array存所有找到的数组,然后scan一下,把没有得numbers找出来。读取次数复杂度没有变,average还是O(n),只是减小读取次数。不是说微软算法简单么。。。告诉我这个简单在哪-google 1point3acres

最后一轮,已经心灰意冷,上来还是个三姐,然后态度确实也比较冷漠,而且也有传说中的看手机情况。Circle buffer,其实很简单,一个固定size的buffer,可以增加数据,取数据,数据取完了再取就报错,数据存满了再存就报错,因为是环形的,所以重复的存取,位置会重复利用,存到了尾部,会转到头部。其实很简单,就用arraylist,记录头的位置用来取,记录尾的位置用来存,记录一个count有多少个数据在buffer里。问题是,三姐一直不主动给信息,让我自己去问,而且还含混不清,一直说的像一个queue,但是用的是put跟get,让我一直很困扰,我以为get只是得到那个值,还问了她会不会remove掉,她也没明确说,让我一直以为只是读数据,最后写完代码她说不对,一开始你用个add跟remove或者offer跟poll不是很清楚么。另一个跟我一起面试的哥们,也跟我吐槽说三姐陈述题意含混不清。。

等hr发了拒信再来update结果
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
. 1point 3acres 璁哄潧

评分

1

查看全部评分

osooisgood 发表于 2016-11-16 02:29:52 | 显示全部楼层
同14 面, 前三輪感覺一定過, 最後一輪跟樓主一樣,遇到了傳說中的看手機三哥, 不理人
回复 支持 反对

使用道具 举报

wobujupa 发表于 2016-11-16 03:26:54 | 显示全部楼层
国人小姑娘我也碰到了,磕磕绊绊,各种提示下,是把这个当作一个LinkedList去处理,复杂度是O(n*n),优化的时候继续蒙圈,没给出结果,她一离开我就想出来了,其实加一个swapAny()再用two pointer去走,就不用每次都moveToFirst()了。
回复 支持 反对

使用道具 举报

 楼主| gangyang75 发表于 2016-11-16 07:58:19 | 显示全部楼层
第二天中午就收到hr的电话说挂了
回复 支持 反对

使用道具 举报

martin5678 发表于 2016-11-16 09:17:05 | 显示全部楼层
同一个event我跟你重复的是那个第一轮的老头。。不过他全程感觉想睡觉。。。然后今天我还有其他面试手机飞行模式了,没收到消息,不过昨天走之前最后一轮是个director直接跟我说应该有offer。。。
回复 支持 反对

使用道具 举报

CallMeGreg 发表于 2016-11-16 09:19:39 | 显示全部楼层
martin5678 发表于 2016-11-16 09:17
同一个event我跟你重复的是那个第一轮的老头。。不过他全程感觉想睡觉。。。然后今天我还有其他面试手机飞 ...

你面试的题目都是常规题目么?
回复 支持 反对

使用道具 举报

martin5678 发表于 2016-11-16 09:22:17 | 显示全部楼层
CallMeGreg 发表于 2016-11-16 09:19
你面试的题目都是常规题目么?
. From 1point 3acres bbs
1,2轮原题, 不过第一轮follow up 让我写swap那种算法的permutation很纠结在面试官的帮助下才写出来,3,4轮都不是原题,但也都不是难题
回复 支持 反对

使用道具 举报

say543 发表于 2016-11-16 14:58:41 | 显示全部楼层
azure identity 吗? 看上去像.... 玩手机不能跟HRtalk吗...
回复 支持 反对

使用道具 举报

crystal_la 发表于 2016-11-24 05:17:50 | 显示全部楼层
谢谢lz! 讲的好细致
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-7 01:04

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表