过程:
- 1 在线能力
- 2 技术回合
- 1 轮招聘经理
在线能力:2020 年 9 月
3 不同难度的问题:
- 给定一个数组和一个整数 k,按升序排列前 k 个元素,然后按降序排列其他元素。
- 一个中等的基于哈希图的问题,不记得确切的问题。
- 高级字符串匹配问题。
在这里找到问题:
https://leetcode.com/discuss/interview-question/856450/Flipkart-or-Online-Assesment(new-grad-2021-India)-or-Draw-String
我完全解决了前两个问题,第三个问题能够通过 21 个测试用例中的 4 个。接到面试电话。
技术面试 1:2020 年 10 月,在授予 Online Aptitude 后整整一个月。 AMCAT 智能会议平台。
一些介绍后又问了3个问题。
- https://leetcode.com/problems/squares-of-a-sorted-array 。被要求写伪代码。
- https://www.geeksforgeeks.org/maximize-sum-of-k-elements-in-array-by-taking-only-corner-elements/ 。给出了 O(2^k) 的递归蛮力解。被要求优化。当我想起 O(k) 解决方案时开始考虑 DP 解决方案。解释并为它编写了代码。
- https://leetcode.com/discuss/interview-question/309656/google-reorder-array-according-to-the-given-indexes 。快速解释了恒定的解决方案。似乎对解决方案感到满意,并没有要求编码。然后,他扩展了相同的问题,在没有任何额外空间的情况下重复相同的过程“k”次。时间不多了,只给了我 2 分钟的思考时间,他告诉我我们没时间了。不能给他任何解决办法。
问我有没有什么问题要问他。几个问题之后,采访结束了。当天晚上,我接到了下一次面试的电话。
技术面试 2: 2020 年 10 月,两次面试之间的 1 天休息时间。 AMCAT 智能会议平台
这次不做介绍,直接上编码问题。
- 找到最大数量为 1 的行。首先他给了我这个问题,为此我给了他 3 种方法。一种是简单搜索 O(m * n),另一种是用 O(mlogn) 对每一行进行二分搜索,另一种是 O(m+n) 方法。他询问了第二个解决方案并将问题更改为 https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/。他希望我为此编写工作代码,甚至将一些测试用例加载到我的代码需要通过的 IDE 中。
- https://leetcode.com/problems/sliding-window-median/。首先给了他一个 O(n * klogk) 的蛮力解决方案。试图从整数流解决方案中的中位数构建。告诉他必须保持左侧最大堆和右侧最小堆。在每次滑动窗口后,如果我们保持 value vs index hashmap 并且添加也是 O(logk),则删除将是 O(logk)。分析了时间复杂度,结果是 O(nlogk),他对方法很满意,不需要代码。
- 这是一个通用的字符串分组问题,但由于时间不多,他希望我找到一个哈希函数来区分每个组。给出了一个基于字符串的哈希,但他想要一个整数。几分钟后,我想不出任何东西,所以给出了一个基于质数的哈希解决方案,其中每个数字都映射到一个相应的质数,然后将所有质数相乘以避免冲突。他似乎并不满意,但已经没有时间了。
在我问了一些关于 Flipkart 内部运作的问题后,他结束了采访。在面试后 40 分钟内收到了管理轮的邮件。
招聘经理轮:2020 年 10 月,技术轮 2 3 小时后的同一天。AMCAT Smart Meet Platform
原以为会问一些核心操作系统、DBMS 和网络问题,但没有问到。这是一个纯粹的基于人力资源的回合。主要是问了通常的行为 hr 问题。我不知道我在这方面做得如何,因为这一切都非常主观。 35分钟后,面试官问我有没有什么问题,他回答完了,面试就结束了。
由于这是一个校外机会,我不知道他们面试了多少人,也不知道他们最终计划雇用多少人。
在 15 天没有收到他们的消息后,我给 HR 发了邮件,他告诉我我没有晋级。