微软来到我们的校园,大约有 170 人参加了。
第一回合:
这是在 CoCubes.com 上进行的,我们必须在 75 分钟内解决 3 个问题。每个人的问题都不一样。我的问题是:
- https://www.geeksforgeeks.org/length-longest-consecutive-1s-binary-representation/
- https://www.geeksforgeeks.org/leaders-in-an-array/
- 我们得到了一个链表,我们必须以这样的方式分离它的偶数和奇数位置节点,奇数位置节点在偶数位置节点之前,偶数位置节点必须附加在奇数位置节点之后,但顺序相反。我们不被允许使用任何额外的空间。
Ex – linked list: – 1 -> 2 -> 3 -> 4 -> 5 -> 6 Output: – 1 -> 3-> 5 -> 6 -> 4-> 2.
其中 72 人被选中进行更多轮次。
在微软海得拉巴办公室进行了更多轮次。
组飞:
- 在这两个问题中显示了每个人都共有的问题。有一位导师分配给 6 人,您可以与他们讨论问题并提出疑问。 (PS:尽量多和他们谈谈。提交前告诉他们你的解决方案。告诉他们一些你能想到的好的测试用例)。
- https://www.geeksforgeeks.org/minimum-number-platforms-required-railwaybus-station/
- https://www.geeksforgeeks.org/connect-nodes-at-same-level/
问题是:
其中 36 人被选中进行进一步的轮次。
技术面试第一轮:
- 我没有发现面试官很有帮助。他也问了我一些突如其来的问题。
- 计算一个数字的二进制表示中 1 的数量。
我先给了他天真的方法。他让我降低时间复杂度。我告诉他我们可以使用备忘录。他再次说我想要介于两者之间的东西(即空间复杂度和时间复杂度都不是太大)。然后在一些不成功的尝试之后,他要求使用线程(奇怪,是的!)。然后他不满意,要求继续前进。
- https://www.geeksforgeeks.org/union-and-intersection-of-two-linked-lists/
这很容易,我编写了完整的代码。然而,他问了一些特定于测试用例的问题,我真的无法回答。然后我们继续前进。
幸运的是我被选中参加第 2 轮。
第二轮技术面试:
- 这次面试官
- 1.) 给定两个字符串s1 和 s2。从 s1 原地删除 s2 中的所有字符实例。
Ex: s1 = "hello world" : s2 = "eo" ; new s1 = "hll wrld"
我给了他两种方法。
a.) O(mn) 我们使用蛮力。
b.) O(n) 其中我们使用哈希映射来存储 s2 的字符并遍历 s1。
他也想要介于两者之间的东西。思索之后
有一段时间我想出了一个 mlogn 方法,你可以对 s2 进行排序并在 s2 中搜索 s1 的字符。
他真的很感动也很开心。
真的很有帮助和甜蜜。他问了我一个问题:
在这之后,我
被告知我得到了实习机会! 😀 Geeksforgeeks 对我准备实习真的很有帮助。