📜  微软面试经历| 110套(实习)

📅  最后修改于: 2021-11-17 10:02:07             🧑  作者: Mango

第1轮
这是在 cocubes.com 上进行的在线编码回合。这是一个 75 分钟的回合,仅包含 3 道编码问题。
问题是:

  1. 给出了一个整数数组,表示 n 个建筑物的高度。太阳从左侧开始落下。如果存在一定高度的建筑物,则其右侧所有高度较低的建筑物都看不到太阳。找到没有。可以看到总和的建筑物。
    解决方案:GeeksforGeeks 链接
  2. 就地重新排列给定数组,使所有负数出现在正数之前。(保持原始数组中给定的所有 -ve 和 +ve 数的顺序)
  3. 查找树的最小深度处的叶节点总和。如果 root 为 NULL,则返回 -1。

    学生全部答对,部分学生答对两题,本轮通关。大约 150 名学生中总共有 16 名学生被选中参加在 NSIT 德里进行的更多轮次。

第二轮:组飞轮

    本轮仅给出1个问题,分配时间为30分钟。这是一个基于纸张的编码回合。
  1. 问题:编写一个字符串比较函数。(返回 0 – 如果字符串相等,1 – 如果字符串1 大于否则 -1)。给出了字符优先级的递增顺序:
    a,b,c,d,e,k,f,g,h,I,j,l,m,n,’ng’,o,p,q,r,s,t,u,v,w, x,y,z(必须将 ‘ng’ 组合视为单个字符)。

    在我看来,在这一轮中,除了编写正确且有效的代码之外,还应该尝试与导师进行很多沟通,让他了解您的代码。
    从 12 名学生中,选出 6 名进行进一步的轮次。

第三轮:技术面试

    首先对我的项目进行了 15 分钟的讨论。他问了我项目的细节,比如实现、使用的技术和在项目上花费的时间等。然后他只给了我一个编码问题——

  1. Ques – 给定 k 个排序数组。将它们合并为一个排序数组。
    我直接给了他分钟。堆解决方案,所以他也向我询问了其他方法。然后他让我推导出 min 的时间和空间复杂度。堆解决方案。然后他告诉我为相同的代码编写代码。

    面试官一点都不合作。在我编写代码时,他一直在问问题。

第四轮:技术面试

    面试官很酷,在讨论完我的项目后直接问了我一些问题。
  1. 问题一:求2个链表的交点。
  2. 问题二:链表循环检测。

    他让我写上面2个问题的代码。他告诉我,代码的评估将根据代码的正确性、适当的缩进、花费的时间等。

  3. 然后他问了我关于背包问题(分数以及 0-1)和一些与图相关的问题。我告诉他我不擅长编写图形代码,所以他只问了这些问题的实现。

第 5 轮:技术面试

    本来是 HR 面试,但面试官也问了我一些技术问题。首先她问了我这个项目,然后是一些基本的人力资源问题,然后给了我 2 个编码问题,并告诉我编码它们。(正确且整洁)
  1. 问题 1:给定 BST 的预序和中序遍历。构建 BST。
  2. 问题 2:给定一个字符串。编码它。
    Ex: input = wwwwaaabcccdd
    Output = w4a3bc3d2

    对于这两个问题,我都给了她最好的解决方案。

    然后她问我有什么问题要问他们,所以我确实问了一些问题。

感谢 GeeksForGeeks 提供了如此庞大的内容来学习和实践。

微软的所有练习题!

相关实践问题

排列数组
字符串比较