PharmEasy 面试经验 | SDE-1(1年经验)
第一轮(F2F):
- 将一个节点插入排序链表并从中删除一个节点。处理所有边缘情况。
- 将 n 叉树转换为它的镜像树。我给出了一个使用递归的解决方案,他让我在没有递归的情况下做到这一点。然后我使用了队列和级别顺序遍历。 https://www.geeksforgeeks.org/mirror-of-n-ary-tree/
- 将链表旋转 K 个节点。我给出了一个使用 2 pass 的解决方案。他让我只遍历列表一次。 https://www.geeksforgeeks.org/rotate-a-linked-list/
第 2 轮(F2F):
- 查找链表的中间节点。如果大小是偶数,则返回 2 个中间节点中的第一个。
- 给定一棵二叉树,打印每个级别的所有节点的总和。
- 使用堆栈实现队列。 https://www.geeksforgeeks.org/queue-using-stacks/
- 什么是 OOPS 概念?
- 差异 b/w 抽象和封装与示例。
- 面试官问你知道哪些设计模式,然后让我写单例模式的工作代码并解释。为什么使用这种模式?
- 什么是缓存?为什么我们需要它们?
招聘经理回合:
- 给定 100 台机器,每台机器都有 1GB 的 RAM 和 100GB 的内存,对大小为 100GB 的文件进行排序。给定的文件是一个包含字符串的文本文件。解决方案——我们显然必须将文件分成 100 份,因为一台机器只有 1GB 的 RAM。我们可以应用任何排序算法对每个部分进行排序。现在真正的挑战是合并排序的文件。我们可以使用大小为 100 的minHeap并将每个已排序文件的第一个字符串推送到堆中。现在我们将执行extractMin并将字符串附加到输出文件。现在我们将下一个字符串从文件中的下一个字符串推入minHeap ,该文件的内容刚刚从堆中提取,例如。如果extractMin操作从 File.1 中提取了一个字符串,则 File.1 的下一个字符串将被推送到堆中。这将一直持续到我们推送了每个文件的每个字符串。面试官非常乐于助人,并给了我解决问题的提示。
- 详细讨论我目前的工作。他似乎对我正在进行的项目很感兴趣。他基本上想检查我对我工作的系统的设计和架构有多少想法。他在我的项目中给出了几个替代方案,并要求我处理这些。
- 为什么我想离开我现在的公司?为什么要加入创业公司?
人力资源回合(电话):
它持续了 15 分钟,通常是 HR 问题。为什么选择药易?为什么要离开现在的雇主?您将如何管理来自跨国公司等的初创公司?
这是最后一轮,我被选中了。