📜  微软采访 |第 27 组

📅  最后修改于: 2022-05-13 01:58:12.666000             🧑  作者: Mango

微软采访 |第 27 组

第 1 轮:(1 小时)
===============

  1. Q1。设计一个像Java一样的垃圾收集器。您将如何检测依赖的参考循环?
    Hist:类设计,不相交图的循环检测算法(连接图列表)
  2. Q2。在 O(logn ) 复杂度的有序旋转数组中查找元素。

第二轮:(1.h 15min)
====================

  1. Q1。给定一个具有重复元素的排序数组,如何在 O(logn) 中找到给定元素的第一个索引。
    为它写代码。更改条件以找出该元素的最后一个索引。
    [提示二进制搜索]
  2. Q2。你有一本单词词典。给定一个单词, print all anagram are in dictionary 。说明用来解决这个问题的数据结构。
  3. Q3。设计一个芯片加密系统。它将执行以下操作:
    • 取用户的一句话
    • 通过一些私钥或公钥密码术或任何其他算法加密单词。
    • 通过 TCP 或 UDp 或 SSL 传输加密字。
  4. 使用 OOD 设计类图。您使用哪种设计模式来实现这一点。

第三轮:(1.h 15min)
====================

  1. Q1。在一个平面中,给出了 n 个点(X 和 Y)。你将如何找出最大的共线点。扩展这个算法。它用于 3D 平面中的点(x,y,z)。
  2. Q2。反转一个 32 位整数。为它写代码。
  3. Q3。多线程有什么不同的问题?互斥量和信号量有什么区别。
  4. Q4。你有一个包含百万字的文件。在该文件中查找最常见的 10 个单词。您可以将所有单词存储在内存中的节点。
    (注:最小堆 + 列表)

第四轮:
跳过……🙂

第 5 轮(2 小时 30 分钟)
====================

  1. Q1。你会得到一个文本,其中所有空格、句号和所有标点符号都被删除。您想通过在单词之间放置空格来重构文本。
    给出了一个 dict 并且还给出了以下 API。
    • 决定文本是否可以转换为带有有效单词的句子。
    • 找出有多少种方法可以重建文本。
    • 找出可用于此重建的最小空间数。
    • 对于案例 (c),找出您想放置空格的索引。
    • 现在将文本恢复到句子中。
      后续问题:
    • 1. 为什么贪心技术对此不起作用?
    • 2.是的!回溯将起作用,使用回溯有什么问题?
    • 3. 说明并解释解决方案是如何从动态表中收缩出来的?
    • 4. 为 (c),(d),(e) 编写正确的工作代码。
  2. Q2。给定一个 BST,用总和 S 找出从根到叶的最小长度。注意:
    • 从根到叶节点的路径。
    • 路径的节点总和为 S
    • 如果存在多个这样的路径,则打印最小长度路径。
    • 用于该算法的 BST 而不是 BT 的优势是什么,它如何提高性能。在 BST 中,是否需要探索双方?
    • 为它编写工作代码。

状态:已选中! (面试电话是针对 SDE-I,但他们为我提供 SDE-II(L61) 职位)

微软的所有练习题!