软件工程师的 PharmEasy 面试经验 1 – 校园 2020
笔试:这一轮由 6 个 GATE 级别的简单 MCQ(排序 + 时间复杂度 + DSA)[4/6 分] 和 1 个编码问题组成,每组的编码问题都不同 [20 分]
我的问题似乎不正确:
- 给定:一个城市的 2 名医生 [A 和 B] 和 N 种药物。当轮到医生时,他要么选择 1 种药物,要么选择 n 种药物 [greedy]。考虑 A 的回合总是先出现。给一个N,告诉谁吃药,按'A'或'B'打印
令人困惑,对吧?我很困惑并尝试了一些自定义测试用例来获得想法
尝试将 n 设为 0-20 - 观察到 n = 3 -> 每次返回 'B' 否则每次 'A'
这么写
if(n == 3) return ‘B’ else return ‘A’;
所有的测试用例都被清除了。被选为书面(只有 8 名学生入围 - 可能是其他集的棘手问题)
第二轮(个人面试): 8人入围。从简短的介绍开始,他在 1 月份才加入该组织,仅 8 个月。这家伙非常友好。
他让我介绍一下,然后转到我的简历上。他从3个项目中选择了一个,深入研究,还尝试修改一些案例,问你如何处理。我个人在那个项目上花了很多时间,这部分很顺利。
他从 DSA 开始: 2 个问题(简单)
- 给定一个字符串(仅由小写字母组成),如果所有字符都是唯一的,则返回 true,否则返回 false。我告诉他一个基于 HashSet 的方法,他很高兴,因为字符有限,我们也可以使用 arr[26] 来实现。需要代码,他让我运行一些测试用例,代码运行良好。
- 给定一个二叉树,返回一个镜像二叉树。只是需要这种方法,我告诉他需要交换左右孩子,他对这种方法没有意见。
由于这一切都在30分钟内结束,他又尝试了一些问题,问我是否知道rabbitMQ和其他人,我告诉他我只有一点想法,并且我告诉他我想问一些问题,以他很乐意告诉他。
我问了他一些问题,我对此表示怀疑,那就是这一轮。
第三轮(招聘经理轮):本轮入围5人
- 自我介绍
- 什么是缓存——解释得很好
- DBMS Ques – ACID 属性
我告诉过我对 DBMS 不是很熟悉,但是 ACID 我可以尝试解释一下
A: Availability - later, she pointed out and I told Atomicity
C: Consistency - explained
I: Isolation - Explained
D: Durability - wasn’t able to re-collect
继续编码:给定一个整数数组——返回三元组。三元组:如果 a1 + a2 = a3,则 a1、a2、a3 是三元组
可能有重复,我说如果没有重复就会很容易。她说,我们先解决那个案子。
我给出了一种蛮力方法——O(N^3),她要求对其进行优化。我给了 O(n^2) 时间 + O(n) 空间方法——使用 HashSet
她说,你能减少空间吗?我尝试并提出了 2 指针方法 - O(n^2) 时间 + O(1) 空间
她让我写代码,我照做了。后来她让我处理重复
我尝试了很多方法,但对于某些测试用例它们都失败了。
后来经过 2-3 种不同的方法,我能够找到解决方案,即保持计数并删除重复项
后来,她问我有什么问题。我向她询问了公司对 COVID-19 情况的政策。
本轮共耗时1小时10分钟
没有入围决赛 - HR