微软采访 |设置 8
这是关于我昨天发生的MS面试的经历
部门:微软必应研发
回合:共4回合(全部面对面)
地点:海得拉巴。
技术第一轮
- 找到链表的中点
- 检查链表中是否存在循环
- 如何计算链表的大小
- 给定一个未排序的数组,如何将它们分成两个相等且总和之差最小的数组
-> 首先我提出排序,然后将它们分配到两个桶中。她没问题。但是她不想对数组进行排序并询问我是否可以在 O(n) 时间内解决
技术第二轮。
- 给定一个数组,在 O(n) 时间和 0(1) 空间内旋转数组的元素
-> 这对我来说是最糟糕的一轮。犯了愚蠢的错误。出来后心情很不好。无法理解连续交换
技术第三轮
- 给定一个排序数组,找到总和可以等于或接近给定总和的元素对
- 给定一个数组 [a1b2c3d4] 转换为 [abcd1234] 具有 0(1) 空间和 O(n) 时间
第四轮导演
- 给定链表,编写 heapify 和 delete 方法。
- 给定两个任意长度的排序数组,如果它们被排序为单个数组,则找出它们的中位数。
–>在这里迷路了。我找不到好的解决方案。我认为这是我的运气不好🙁 如果我能回答这个问题,我现在已经在 MS 了。总之,总体来说是一次不错的体验。我第一次进入MS校园并第一次采访他们。学到很多。需要改进并在下一次之前进入它😉
他们会给出一些提示并尝试使用它们并从中找到解决方案。
微软的所有练习题!