📌  相关文章
📜  SDE-2 的 MediaNet(DirectI) 面试经验(2-3 年经验)

📅  最后修改于: 2021-09-23 06:14:43             🧑  作者: Mango

由招聘人员安排。他们总共进行了 3 轮 SDE2

第 1 轮:关于中等难度的 DS-Algo 的 3 个问题

  1. 给定一棵二叉树,计算单值子树的总数。单值子树是具有相同值的左子树和右子树的子树。

    示例: Ans 5(所有叶节点 3 + 子树 2)

    2
       /  \
      2    2
     /      \
    2        2

    Ans:在父级检查子树是否为子树的后序遍历。叶节点本身已经是子树。

  2. 给定一组未排序的数字。给定一个大小为 k 的窗口。对数组进行分区,使得左子数组的最大和与右子数组的最大和之和最大。只需找到总和,子数组也应该不重叠。

    例子:

    1 3 5 7 4 1 9 6 8  
    N = 9 , k = 3
    {5 7 4} + {9 6 8} = 39
  3. 给定一个未排序的数组,求连续数的最长子数组的长度

    例子:

    7 1 5 8 9 3 4 2

    答。形成两个子阵列

    1 2 3 4 5
    7 8 9

    因此,连续数组的长度为 5。

提示:排序是简单的 O(nlogn)。将其改进为 O(n) 时间。使用哈希图

第 2 轮:编写一个包装函数,可以快速检索唯一编号。该函数没有任何参数。给定函数从数据库中获取唯一数字,并且已经实现。 int fetch(int n) –> 获取 n 个唯一值。

Ans:这是一个基于生产者-消费者模式的问题,你必须在这里使用多线程

  • 维护 2 个列表。当一个列表变空并从另一个返回时调用 async 。
  • 阻塞队列