📜  微软面试经历 | Set 132(Bing Team 软件工程师)

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

微软面试经历 | Set 132(Bing Team 软件工程师)

我最近参加了微软必应团队的软件工程师面试。

第1轮:

微软面试经历 |第 131 集

    它的初始筛选轮。它是通过Skype发生的。
  1. 给定 n*n 矩阵,每个单元格中有一些元素。如果任何单元格中有“0”,那么我们必须将相应的行和列设置为“0”
    时间复杂度:O(n*n) 空间复杂度:O(1)
  2. 给定一个大小为 n 的元素数组。您应该找到重复超过 n/2 次的数字

    时间复杂度:O(n)

    放映一轮后,他们让我来参加 4 轮 F2F 轮次。我访问了 Microsoft IDC 海得拉巴。


第 2 轮:

  1. 给定排序的数字数组和一个总和。我们必须找到总和等于给定总和的任何两个数字。

    时间复杂度:O(n)

  2. 给定具有父指针和两个节点的二叉树。查找给定二叉树中给定两个节点的 LCA
    struct TreeNode
    {
    int data;
    TreeNode *left,*right,*parent;
    };
    

每个节点的父指针指向它的父节点。根节点的父指针指向 NULL

时间复杂度:O(logn)

第三轮:

  1. 给定两个链表。找到这两个链表的交点
  2. 它基于二叉树。我忘了问题🙂
  3. 智能手机中搜索功能的设计讨论


第四轮:

  1. 给定一个链表,每个节点的随机指针指向给定链表中的某个随机数。克隆链表
    struct ListNode
    {
     int data;
     ListNode *next,*random;
    };
    
  2. 设计和实现 DNS 缓存。

    要求:
    缓存的大小必须是固定的,这将由想要使用此缓存的用户决定。
    如果该条目在缓存中不可用,则它应该调用服务器以获取 ipAddress 的详细信息并将其存储在缓存中。


第五轮:

  1. 以螺旋顺序打印给定矩阵
  2. 我忘记了问题。它与数组有关
  3. facebook 上提供的关于 Top Trends 功能的设计讨论。