Microsoft Azure on site interview


Microsoft Azure on site interview

Round one: system design
Behavior Questions: Most challenge project
System design: 设计一个event calendar service,要求用户能够通过这个create event,并且系统能够识别时间冲突(比如event1 选了10:00 - 11:00,那event2就不同选这个时间)
写完之后具体问了nosql和sql的区别,然后让写了一下detect event time overlap的算法,有点像merge interval的变形
之后再问现在允许至多两个event重合,现在怎么修改算法(还是刚刚那个例子,event2现在可以选10:00 - 11:00了,但如果再来event3就不可以)


Round two: Coding
没有behavior questions,直接上题,约瑟夫环,我记得很久之前在leetcode上做过,但面完去找也没找到。题目可以上google搜一下,要求不能用数学公式。
给了double link-list的解,接着开始优化
1. 先讨论step = 0 和 step = 1的case
2. 讨论 step > total solider number的case
3. 然后问我还有没有优化的点。。。我想了一会才发现,如果solider是5,step是4,那其实clockwise走4步,和anti-clockwise走1步是一个效果。


Round three  Coding
Alian Dictionary,但我没做过,上来试了各种想法都被否了,最后在他的循循善诱下说是个可以拓扑排序,这时大概只有10分钟了,他说你赶紧吧,能写多少是多少。
紧赶慢赶,写完了construct graph的部分
留了两分钟,面试官说对我简历的某个项目挺感兴趣的,问了我一下

No comments:

Post a Comment