📜  微软面试经历 | Set 144(泳池校园 - 实习)

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

微软面试经历 | Set 144(泳池校园 - 实习)

在线编码轮 –
550名学生参加了在线编码轮次,CGPA 截止时间为 7 个。向我们提出了三个编码问题,我们有 90 分钟的时间来解决三个问题。

第 1 轮 – 在线评估 –
平台 – cocubes.com
持续时间 - 90 分钟
格式 - 3 个编码问题
最高分 – 10 分

  1. 完成以下函数-
    int findMax(TreeNode arr[], int size_of_array)
    {
      
        // code goes here
    }
      
    // Where TreeNode is a
    structure defined as : struct TreeNode {
      
        int feet;
        int inches;
    };
    

    该函数应该返回 TreeNode 的最大值。这应该通过计算每个元素的 (12*feet+inches) 来完成。它由2个标记组成。

  2. 我们得到了两个排序的链表,我们必须组合两个着墨列表,这样组合的列表也是排序的,但降序的
    订购,例如,
    清单 1:- 1 -> 3 -> 5 -> 7
    清单 2:- 2 -> 4 -> 6
    结果:- 7 -> 6 -> 5 -> 4 -> 3 -> 2 -> 1
  3. 我们得到了一个链表,我们必须将其偶数和奇数位置节点分开,这样奇数位置节点在偶数位置节点之前,偶数位置节点必须附加在奇数位置节点之后,但顺序相反。我们不允许使用任何额外的空间。
    例如 – 链表: – 1 -> 2 -> 3 -> 4 -> 5 -> 6
    输出:- 1 -> 3-> 5 -> 6 -> 4-> 2。

10名学生从我校被选中进行进一步的面试。

Group Fly round –这是 Microsoft 的泳池驱动器,因此来自不同学院的大约 120 名学生前来参加泳池驱动器。我们被问到 2 个编程问题,我们有 45 分钟的时间
解决这些问题。

  1. 我们得到三个排序数组,我们必须从三个排序数组中找到三个元素,使得这三个元素的最大值和最小值之间的差应该是最小的。所有元素都应该来自不同的数组。
    例如 :-
    A[] = {1, 4, 10}
    B[] = {2, 15, 20}
    C[] = {10, 12}
    输出:10 15 10
    10 个来自 A,15 个来自 B,10 个来自 C
    https://www.geeksforgeeks.org/find-three-closest-elements-from-given-three-sorted-arrays/
  2. 我们得到了一个数字,它表示在链表的 from 中,我们必须在数字上加一,并在添加后返回修改后的链表。
    例如:- num = 123 {1 -> 2 -> 3}
    结果:- 124 {1 -> 2 -> 4}
    https://www.geeksforgeeks.org/add-1-number-represented-linked-list/

从10名飞轮组中选出我院4名学生进行进一步的技术面试。

技术面试(第一轮)–

  1. 他在浏览我的简历时询问了我的介绍,并让我自我介绍,然后转向技术问题。
  2. 我们得到了前一天特定股票的股票市场价格,我们必须找出在该特定日期只买卖一次股票可以产生的最大利润。我给了他一个 O(n) 方法,在特定日期最多一次买卖股票,他对我的方法非常满意,后来他要求 ode ,他非常友好和支持并帮助我编写代码。
    https://www.geeksforgeeks.org/stock-buy-sell/
  3. 他修改了之前的问题,特定股票的股票价格是在特定日期给出的,我们必须在特定日期最多买卖该股票两次,并且我们必须找到通过交易可以获得的最大利润在那个特定的日子。这是一个动态规划问题,在面试官的帮助下,我找到了 O(n) 的解决方案。他对我的做法很满意。
    https://www.geeksforgeeks.org/maximum-profit-by-buying-and- sell-a-share-at-most-twice/
  4. 最后他问你有什么问题要问我吗?
    我询问了微软不同的角色和团队,以及根据我们的兴趣改变团队的灵活性。

我们学院的 4 名学生中只有1人通过了第二次技术面试。

技术面试(第 2 轮)–

  1. 面试官首先介绍了自己,并告诉了我他在微软工作的经历。然后他转向技术问题。
  2. 他要求我得到一棵二叉树广告,我必须找到该二叉树中的最大路径总和,使得路径在二叉树中的任何节点处开始和结束。二叉树的所有节点都是正的。我向他解释了解决问题的方法,然后他要求在纸上编写代码。
    https://www.geeksforgeeks.org/find-maximum-path-sum-in-a-binary-tree/
  3. 他问我是否对 N-ary 树感到满意,但我否认了,然后他问了一个按位运算运算符的问题。您已获得一个数字,您必须找到下一个更大的数字,使其具有与给定数字中相同数量的设置位。
    例如 :-
    数量 = 4 (100)
    结果 = 8 (1000)
    这是一个有点棘手的问题,首先我向他解释了蛮力方法,然后他让我进一步优化它。他帮助我找到了解决方案并编写了代码。
    https://www.geeksforgeeks.org/next-higher-number-with-same-number-of-set-bits/
  4. 最后他问我有没有什么问题要问他?
    我问他实习生在被选中后,未来的策略应该是什么,他应该学习哪些对他的职业成长有益的东西。

不幸的是,我在大学的第二次技术面试后也被拒绝了。
面试体验非常好,他们专注于所有核心的计算机科学科目。 Geeks for Geeks 对我有很大帮助,因为它帮助我做好了安置准备,并提供了安置准备所需的几乎所有内容。

微软的所有练习题!