📜  微软面试经历 | Set 90(Bing Team 中的软件工程师角色)

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

微软面试经历 | Set 90(Bing Team 中的软件工程师角色)

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

第1轮:

它的初始筛选轮。它是通过Skype发生的。

1. 给定 n*n 矩阵,每个单元格中有一些元素。如果任何单元格中有“0”,那么我们必须将相应的行和列设置为“0”
时间复杂度:O(n*n) 空间复杂度:O(1)

2. 给定一个大小为 n 的元素数组。您应该找到重复超过 n/2 次的数字

时间复杂度:O(n)

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

第 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 Cache。

要求:

缓存的大小必须是固定的,这将由想要使用此缓存的用户决定。

如果该条目在缓存中不可用,则它应该调用服务器以获取 IP 地址的详细信息并将其存储在缓存中。

第五轮:
1. 以螺旋顺序打印给定的矩阵

2. 我忘记了问题。它与数组有关

3. 设计讨论脸书上的热门趋势功能。