优步面试经历 |软件工程师 1
有4轮。他们每个人都是淘汰赛。
第 1 轮(Hackerrank 平台在线测试 - 90 分钟):
- 一个简单的基于树的问题。 (直截了当——100分)
- https://www.geeksforgeeks.org/delete-edge-minimize-subtree-sum-difference/ (简单——100分)
- 一个基于 GCD 和 Eratosthenes 筛子的问题。 (中等——100分)
清除这一轮所需的截止值是 300。
在优步海得拉巴办事处举行了更多轮次。
第二轮( 30-40分钟):
面试官问了一些关于网络和操作系统的问题。
- 捶打的讨论
- TCP 与UDP
- 操作系统如何处理页面错误?
- 用简短的解释解释 OSI 模型的各个层。
上面的问题是用快速的方式问的,所以我不记得所有的问题。面试官只是检查我对操作系统和网络的基本了解。
之后,Interviewer 切换到 Coding 部分,问了两个问题。
- https://www.geeksforgeeks.org/next-greater-element/
- 给定一个数字 n 找到长度为 n 的有效括号表达式的数量。 (面试官已经提到不提供加泰罗尼亚号码的解决方案)。
第三轮(解决问题 45-60 分钟):
在这一轮中,我只给出了一个要解决的问题。他只对这种方法感兴趣,并没有要求编码。
- 给定一个整数数组
arr = [5, 6, 1]
。当我们用这个输入以相同的顺序构造一个 BST 时,我们将有“5”作为根,“6”作为右孩子,“1”作为左孩子。现在,如果我们的输入更改为 [5,1,6],我们的 BST 结构仍然是相同的。那么给定一个整数数组,如何找到输入数组的不同排列的数量,从而产生与原始数组顺序上形成的 BST 相同的 BST?
面试官很友好,提供了一些提示,帮助我以最好的方式解决问题。我相信这是最艰难的一轮。
在他对我的解决方案感到满意后,他问我是否有任何问题要问他。我问他为什么 Uber 不像 Ola 那样使用 OTP 验证来验证乘客凭证。然后我们对此进行了一些讨论。
第 4 轮(人力资源 + 系统设计 + 项目 80-90 分钟):
面试官让我提出一个BookMyShow在座位预订过程中的并发管理的解决方案。我想出了一些解决方案,他不断指出其中的缺陷。最后,他终于同意了我的做法。
然后他让我向他介绍我的项目。他对我的小项目很感兴趣,并问了一些与它相关的问题。
关于更多的讨论
- 什么是设计模式以及我们为什么使用它们?解释其中任何两个。
- 关于数据库规范化的讨论。
- 哪个更适合分布式系统(规范化或非规范化)?
- 假设您是项目团队的负责人。您的队友在为特定任务选择设计模式时存在冲突(所有人都提出了不同的设计模式)。你将如何解决这种情况?
- 当您找不到问题的解决方案时(在项目的上下文中),您会怎么做?
他结束了采访,问我是否有一些问题要问他。我向他询问了他的职责以及他在公司的感受。
一些可能有帮助的面试技巧。
- 当你在面试中遇到一个新问题时,不要紧张。相反,尝试建设性地处理它。只需与面试官分享您想到的任何方法(即使它不完整),他肯定会帮助您朝着正确的方向思考。
- 在解决任何问题之前,请向面试官清除您对其解释的所有疑问。你可以礼貌地要求面试官重复这个问题。
- 提前准备一些问题,你可以在面试结束时问面试官。
祝一切顺利 !!