微软采访 |设置 1
以下是我对微软的采访的详细信息。
采访日期: 2012 年 7 月 30 日、7 月 31 日和 8 月 3 日
轮数: 1 次能力倾向测试、1 次编码轮次和 4 次 PI
面试类型:新生校园面试
能力倾向测试(60 分钟) (30-7-12)
这是一个在线测试。它由 50 个问题组成,其中 30 个是基于能力的问题,20 个是技术问题。
30个基于能力的问题,包括基于速度、时间、概率等。
20 个技术问题包括 C 输出、流程图、寻找素数的正确代码、斐波那契数等。
编码轮(60 分钟)(31-7-12)
有三个问题
- 您必须将 n*n 数组向右旋转 90 度。
- 给定一个包含 0s,1s 或 2s 的链表。把它分类
- BST 的两个元素被错误地交换了。您必须在不更改其结构的情况下恢复树。
请注意,您不必只编写函数,就像在 Amazon 中发生的那样。相反,您应该从头开始编写它以及主要函数和所有帮助功能。
我的建议:把指令搞砸,写出你希望为所有三个问题写的函数,然后去帮助函数和 main函数。
个人访谈(3-8-12)
第 1 轮(40 分钟):
- 给出一棵二叉树。您必须检查所有节点的左节点数据是否大于右节点数据。
我的问题:如果左子树或右子树之一不存在怎么办。
澄清:然后您可以假设左侧数据的最大可能值(如果不存在)和右侧节点数据的最小值。
我被要求为一棵树干运行我的代码。还要求测试用例检查我的代码。
第二轮(80分钟):
- 如果您有父指针,则要在二叉树中查找节点的中序后继。
- 找到一个节点的中序后继
二叉树,前提是你没有父指针。询问了他们两个的测试用例。 - 给定一个链表,也存在一个随机 ptr。克隆原始链表。还要给出测试用例。
- 构造一个可以在 O(1) 时间内推送、弹出和查找最小值的数据结构。被要求编码。还询问了测试用例,并被要求确保它也适用于重复的元素
.
第三轮(80分钟):
- 一个文件由许多单词组成。您必须打印 10 个最常用的单词。询问要使用的数据结构,并要求最终对其进行编码。
- 测试用例被要求用于铁路门户。
- 那里有一个函数,它接受一个数字 k 和一个链表,并删除该链表的每个第 k 个节点。预计将编写一个测试上述函数正确性的函数。
- 问题 3 的扩展。如果函数接受一个数字数组而不是一个数字并删除多个数组元素,该怎么办。
第 4 轮(40 分钟):
- 这一轮是最简单的。
- 问题 1:编写一个修改后的 strcmp函数,它忽略案例并在 s1 < s2 时返回 -1,如果 s1 = s2 时返回 0,否则返回 1。像往常一样询问测试用例。
- 问题 2:编写一个函数来检查树是否高度平衡。也给出测试用例。
微软的所有练习题!