Dailyhunt (Verse Innovation) 面试经历 |软件工程师
第一轮:基于笔纸的编码轮
我被要求解决 3 个编码问题,其中我被允许为前两个问题编写伪代码,而第三个问题应该是用完整优化的工作代码编写的。
- 打印二叉树每一层的最大节点值。
- 在给定的数组中找到至少相距 k 距离的最大和的对。还要考虑数组是圆形的。我给出了一个蛮力解决方案,然后将其优化为 O(n)
- 用Java (或其他首选语言)编写一个完整的程序来打印 n 个素数!
第 2 轮:基于笔纸的编码 + 技术轮
我被问到两个编码问题和一个 SQL 查询问题:
- 以优化方式进行数字的平方根。也是这个问题的一个变体:Find if a number is perfect square or not.(提示:使用二分搜索)
- 使用以下规则压缩给定字符串,以便生成尽可能小的字符串:
如果有两个或多个连续字符相同,则将其减少为零字符。如果只有一个字符,则无法压缩它。字符的压缩顺序很重要。例如,如果给定的字符串是: aabba 。您删除第一个“ aa ”,结果字符串将是“ bba ”。然后删除“ bb ”,结果字符串将是“ a ”。那么你就不能再压缩了,所以答案是“a”,它的长度为 1。但是,如果你首先从“ aabba ”中删除“ bb ”,结果字符串将是“ aaa ”,然后是 3 个 A可以一起删除。这将导致长度为“0”的空字符串。所以更好的答案是长度为 0 的“”。 - 我被要求编写一个 SQL 查询。在酒店房间预订表中,对于给定的日期范围,检查是否可以创建预订,或者不存在与给定日期范围重叠的预订。
第三轮:招聘经理轮。
简单介绍后,我们就以下问题进行了讨论:
- 我在目前的组织中从事的项目。
- 我们研究的技术。
- 我项目的 HLD 和架构以及每个微服务的功能。
- 我将加入的团队的工作以及围绕它的其他讨论。
他问了我一个解决问题的问题:最大握手次数。
第 4 轮:基于笔纸的编码 + 技术轮。
- 关于我的项目架构的问题。
- 关于 NodeJS 和流程管理器的问题。
- 关于 Javascript 关于闭包、函数声明、继承等的问题。
- 编写一个程序,以优化的方式在已排序的二进制数组中找到 1 的计数。
第五轮:技术轮。
- 关于 Javascript 的问题。主要关注的是继承、原型。
- 关于 OOPS 概念和接口的问题。
几天后,我最终收到了offer。