微软面试经验| 125套(IDC校园)

微软IDC面试经验

null

在线回合

平台:CoCubes 格式:3个编码问题 时间:75分钟

他们有一个问题库,每个学生随机回答三个问题(2+3+5分)。

  1. 给定一个整数N和一个整数M,输出一个最接近N的数字,该数字可以被M整除 .
    Input: N = 15, M = 7
    Output: 14
    
    Input : N = 17, M = 3 
    Output : 18
    

    O(预期解决方案1)

  2. 给定一个O和1的字符串,输出所有1的子字符串的最大长度。
    Input: 1011010111101
    Output: 4
    
    Input : 0110111110111101
    Output : 5
    

    Geeksforgeks链接 O(n)中的预期解。

  3. 最长算术级数的长度

    O(n^3)中的预期溶液

团体飞行:

    40名候选人被列入飞行小组的候选名单。 问题数量:2 时间:75分钟。

  1. 问题1:

    在字符网格中查找一个单词 这个问题是对上述问题的修正。我们可以在所有8个方向上移动,也可以进行之字形穿越。我们必须返回一个坐标列表(i,j)来找到遍历。如果可能进行多次遍历,请返回任意一次。

    Input: 
    Grid:  a b c d 
           b d e e
           f g r k
           s g s s
    
    String: geeks
    
    Output: (2,1), (1,2), (1,3), (2,3), (3,2)
    

    我用DFS解决了这个问题。

  2. 问题2:

    想象一个欧几里德平面和该平面上的N个点(x,y)。你会得到一份这样的要点清单。然后,您将收到查询,以确定平面中是否存在特定点。 相应地输出TRUE或FALSE。

    0 -10^6<=x,y<=10^6

    Input: 
    Points: (2,1), (1,2), (1,3), (2,3), (3,3)
    
    Query1: (2,3)
    Output1: TRUE
    
    Query2: (2,2)
    Output2: FALSE
    

    他们希望我们优化查询。我使用无序的_映射来存储点,并在O(1)中输出查询。

个人面试 50%的候选人在小组飞行后被选中,即20名学生。

第一轮:

    面试官拿走了我的简历,最多看了2秒钟,然后把它藏了起来。然后他问了一个谜题

  1. 您可以使用以下运算符:+–*/() 插入几个这样的运算符,使给定的行成为有效的数学表达式 1 2 3 4 5 6 7 8 9 = 100.

    注意:如果我们不插入1和2之间的任何内容,它将变为12。1到9的顺序必须保持原样。

    Solution: (1 + 2 + 3 + 4) * (-5 + 6) * (-7 + 8 + 9) = 100
    
    I gave the above solution within 2-3 min. He immediately told me to give one more solution.
    I again took 2-3 mins to come up with one more solution.
    
    Alternate Solution: 123 - (4 + 5 + 6 + 7) - (-8 + 9) = 100
    • 设计一个电梯系统。我们讨论了这个问题大约45分钟。

      我问了他几个澄清问题,他回答得很好。面试官很专业,乐于助人。

    • 有多少部电梯? 答:N部电梯。N不止一个。
    • 有几层? 答:M层。
    • 我们是每层电梯都有一个按钮,还是每层电梯都只有一个按钮? 答:只有一个按钮控制所有电梯。
    • 我们需要考虑电梯中允许的最大数等吗? 答:没有

      .

      在设计系统的过程中,我问了几个其他问题。

      他想让我回答的事情:

    • 我们应该使用什么样的算法来控制电梯的移动?
    • 要使用的数据结构

      .

    • 算法的优化。一个可行的算法是不够的。必须对其进行优化,以实现高效使用、时间和节能。

      后续问题:

    • 我将如何处理并发请求?
    • 不使用时,电梯将停在哪一层?为什么?
    • 一天中的所有时间都是一样的吗?为什么?
    • 我会在白天和晚上使用相同的算法吗?
    • 我计划如何节省电梯运行功率?
    • 如果其中一台电梯出现故障,我的算法会起作用吗?
    • 如果一个按钮在任何楼层被按下两次,我的数据结构能处理吗?
    • 我得到了一年的电梯使用数据。我将如何使用这些数据来优化算法以提高效率?

      你会使用任何ML/AI工具来优化这个问题吗?怎样

      还有很多问题我记不清了。我必须为每一个设计决定给出一个理由。然后他让我为它编写面向对象的代码。

      解决方案:我有一个中央管理类来管理所有的电梯,每个电梯都是一个线程。所有数据都存储在中央管理器中。我将传入的请求存储在平衡二叉搜索树中。我为每个请求分配了一个优先级,如果它来自电梯内部或电梯外部,等等。

    他非常专业,经验丰富。他对我的回答印象深刻。我写代码时,他在笔记本电脑上填写了我的反馈。在我写完代码之前,他说我已经写完了。不需要编写代码。

这一轮过后,我直接被送到了招聘经理那里。对少数人进行了一到两次技术采访。

第二轮(招聘经理):

    他是一位在微软工作了13年以上的资深人士。他非常冷静友好。 他开始问我是否有关于微软的问题等。我告诉他我没有任何具体问题,但我很好奇微软IDC做了哪些工作,正在做的最有趣的项目是什么,等等。他告诉我,现在一切都很有趣。他向我介绍了IDC的各个部门,以及他们在做什么样的项目。然后他问我关于我梦想中的公司。我告诉谷歌。然后我们讨论了谷歌和微软的利弊。他几乎没问其他问题,比如我最喜欢的主题是什么,等等。也没问后续问题。他说现在可以解决一个技术问题了。

    问题:这是一个很长的问题陈述,解决方案归结为 拓扑排序 .我给了他解决方案,他让我写代码。

    他相信了这套准则。然而,他告诉了我一件关于我的代码的小事,这本可以写得更优雅。我同意他的看法。

    然后我们讨论了我的项目。他让我告诉他我在班加罗尔三星研究所实习期间做的项目。他还询问了我的个人项目,并跟进了相关问题。然后他问我有什么问题要问他。我说不。

    我很惊讶我只能打两轮,所以我问他在这之后是否还会有更多的回合。他说我做得很好。放松

候选人的个人面试次数从2到4次不等。

结果:选中。 Geeksforgeks在我的准备过程中帮了我很大的忙。感谢其他学生分享他们的面试经验。

如果你喜欢Geeksforgek并想投稿,你也可以使用contribute写一篇文章。极客。组织或通过电子邮件将您的文章发送至contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

相关实践问题

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享