📜  微软 SDE-1 面试体验(海得拉巴)

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

微软 SDE-1 面试体验(海得拉巴)

我有大约 1.5 年的工作经验,并通过 LinkedIn 接到了招聘人员的电话。

第 1 轮(难度级别 - 中等): 90 分钟的顺应性测试,包括 3 个编码问题。

  • 第一个问题:使字符串成为有效括号所需的最小括号数。
    这个问题预计将在一次遍历中解决,否则它会给出 TLE。
  • 第二个问题:给定字符串中仅出现一次的最小子字符串
    https://www.geeksforgeeks.org/smallest-substring-occurring-only-once-in-a-given-string/
  • 第三题: matrix和DP相关,难度大,耗时
  • 需要解决 50% 才能进入下一轮

第 2 轮:(技术面试第 1 轮)难度级别 - 中等:面试官提供了一个简单的链接,并要求我解决一个问题。

  • 问题:给定一个 BST,在树中找到两个错误放置的节点。
    注意- 首先使用蛮力方法解决它,然后提供优化的解决方案。我使用简单的中序遍历解决了它并给出了所需的输出。
  • 面试官非常友好,每当我遇到困难时都会帮助我。

第 3 轮:(难度级别 - 难):面试官给出了两个问题的 codility 链接,并要求我解决它们。

  • 第一个问题: https://www.geeksforgeeks.org/program-generate-possible-valid-ip-addresses-given-string/
  • 第二个问题:给定 2 个城市 A 和 B,并给定一组对 (costA, costB),其中 costA = 将人员移动到城市 A 的成本,而 costB = 将人员移动到城市 B 的成本。编写一个程序将 2N 人移动到这两个城市城市 A 和 B 使得 N 人在 A 和 N 人在 B 并且成本最小。
    方法:我根据两个城市的成本差异对数组进行了排序。可以使用Java中的比较器接口进行排序。

第 4 轮:(难度级别 - 中等):这一轮由项目经理进行。

  • 当被要求设计一个微型 URL 系统时,考虑到我多年的经验,面试官帮助我解决了获取需求和计算吞吐量的基本设计问题。
    https://www.geeksforgeeks.org/system-design-url-shortening-service/

第 5 轮:(难度级别 - 困难):这一轮由软件工程经理进行。提供了一个包含 1 个要解决的问题的代码链接

  • 问题:给定 2 个值 N,冲刺所有 N 个数字的组合,使得它们的总和为 S。
    示例:输入 – N=2,S=6
    输出: [0,6],[1,5],[2,4],[3,3],[4,2],[5,1],[6,0]。
  • 如果 N = 2,问题可能很简单,但 N 会发生变化,并且允许重复并且允许所有组合。我使用递归方法解决了这个问题,其中一个数字保持不变并开始填充其他数字,使总和等于 S。

第 6 轮:AA 轮(难度级别 - 中等):这是最后一轮,称为 AA(视情况而定)。面试官给出了一个与 1 个问题需要解决的 codility 链接。

  • 问题:给定一个包含 2N 个数字的数组,重新排列数组,使偶数在偶数索引中,奇数在奇数索引中。没有多余的空间可以使用。
  • 使用单次遍历解决了它,面试官已经针对多个测试用例和所有极端情况测试了代码

建议:微软的主要关注点是解决问题和系统设计技能。在 gfg 上练习 LeetCode 和 Microsoft 标记问题有很大帮助。

  • https://www.geeksforgeeks.org/microsoft-interview-preparation/