Flipkart 在 2020 年 10 月为 SDE1 的角色访问了我的大学。总共进行了 4 轮。
第 1 轮(在线编码测试-90 分钟):本轮共提出 3 个问题-
- 最小生成树问题的扩展。
- 给定一个模式字符串和一个主字符串,找到主字符串中包含模式字符串所有字符(包括重复字符)的最小子字符串。
- 加油站的最少次数。 https://leetcode.com/problems/minimum-number-of-refueling-stops/
对编程语言没有限制。至少要解决2个问题才能完成这一轮。
第 2 轮(技术面试 – 45 分钟):面试官非常友好,从一开始就开玩笑。相互介绍完后,他直接进入了提问环节。被问到两个问题,我们应该告诉方法(他们期望最优化的解决方案,也部分接受不太优化的解决方案),然后编写相同的代码。
问题是:
- 将元素转换为正方形后对数组进行排序。
- 给定三个已排序的数组(A、B、C),求元素 ai、bj、ck 的数量,使得 ai>bj>ck 且 ai、bj、ck 分别属于 A、B、C。预期时间复杂度-O(n)
这可以使用三指针技术解决,其中一个指针位于中心数组 (B) 中,并在 A 和 B 中搜索其他两个元素。所有 2 个问题都将被解决以清除这一轮。
第三轮(技术面试- 45分钟):面试官直接进入问题,没有任何介绍。我应该编写代码并在他提供的一些示例测试用例上运行它,然后解释方法(如果测试用例通过)。
-
给定一个字符串和一个断点 b (0<=b<=n),字符串将在断点处被分成两部分。
例子:
S=”walterwhite” , b=3, the two broken substrings are “walt” and “erwhite”. Now delete the minimum number of characters from both the substrings formed such that both become the same. Return the characters to be deleted.
在上面的例子中 – 返回 [‘a’, ‘l’, ‘e’, ‘r’, ‘h’, ‘i’, ‘e’]-> a, l from walt and e,r,h,i ,e 来自 erwhite
解决方案:这是对最长公共子序列问题的一个非常简单的修改。找到两个子串的 LCS 并返回所有不属于 LCS 的字符。
-
找出不属于最长递增子序列 (LIS) 的数组元素的最小总和。
解决方案 – 这是 LIS 问题的一个细微变化。找到最长递增子序列,如果有多个子序列的最长长度相同,则返回最大和LIS。现在返回 sum(array)- LIS sum。
例子:
arr=[1,2,3,4,-9,-7,0,1,2,3,9]
The LIS are – 1,2,3,4,9 and 0,1,2,3,9 but we need to return the maximum sum LIS so, 1+2+3+4+9=19
解:连同我们在dp数组(dp[i]=数组[0:i+1]的LIS)中存储的LIS的长度,同时存储dp2,它是对应LIS的最大和。
这两个问题都需要解决才能完成回合。
第 4 轮(基于 HR 技术简历 – 30 分钟):这是基于简历的一轮,面试官首先介绍,然后开始谈论我的简历并询问项目。问了一些与我的项目相关的假设问题(例如,如果用户提供的输入不准确,您的模型在这种情况下如何稳健?)。在详细讨论了我的项目之后。面试官问我想在 Flipkart 应用程序/网站上添加什么功能,你是如何实现的?
最后问我有没有什么问题,面试就结束了。
最后,有 5 人获得了 FTE。
TIPS——所有的问题都来自数据结构和算法。擅长解决问题的技能和 DSA 知识。非常清楚你在简历中写的项目。