SDE-1 的 Flipkart 面试体验
Flipkart 面试体验(SDE 1 实习生+FTE 的 Flipkart Grid 3.0)
通过 Flipkart Grid 3.0 在校外体验 Flipkart 面试。 Flipkart Grid 3.0 是一个团队黑客马拉松比赛然而,我们的团队没有资格参加构思轮,但我们得到了一个编码轮测试链接。
第一轮:编码轮
有3个问题
- 一个州由 n 个城市组成。城市中的所有道路都是双向的。我们必须找到两个给定城市之间最短路线的长度,通过一个扭曲,您可以消除任何“k”个连接城市之间的距离(消除距离意味着您可以将两个连接城市之间的距离设为 0,您可以做这个“k”次)。
- 高级字符串匹配问题。
- 硬币兑换问题(问题链接)
我解决了 2 个问题(第一个和第三个)
第 2 轮:技术(面试官人数 - 1)
- 给定一个整数数组,找出数组中最小的缺失正整数。
I gave 3 solutions
Approach 1: Time complexity: O(nlogn) Space complexity: O(1)
Approach 2: Time complexity: O(n) Space complexity: O(n)
Approach 3: Time complexity: O(n) Space complexity: O(1)
- 给定一个整数数组,其中包含有折扣的 Flipkart 优惠券,客户可以从数组中选择优惠券但不能连续选择 2 张优惠券,求最大折扣。 (问题链接)
I gave 2 solutions
Approach 1, Time Complexity O(n), Space Complexity: O(n)
Approach 2, Time Complexity O(n), Space Complexity: O(1)
- 什么是完全二叉树?
- 完整二叉树中具有 1 个子节点的最大节点数?
- 二叉树的最大高度?如何?
- 如何解决这个问题?
最后,面试官告诉我他在这一轮中超过了我,并给了我开放的反馈,以便我在第二轮中表现更好。我在同一天获得了第二轮的链接,只有两个小时的时间间隔。
第 3 轮:技术(面试官人数 2)
- 创建一个方法名称为的类
Shuffle(): which would shuffle an array in random order
reset(): which would return the original array
My Solution:
C++
class array_operations{
vector arr;
vector helper;
public:
array_operations(vector nums){
for(auto x : nums)
arr.push_back(x);
}
vector shuffle()
{
int n = arr.size();
helper.clear();
for(int i =0 ; i< n; i++)
{
int r = rand();
R = r % (n);
swap(arr[i], arr[r]);
helper.push_back(r);
}
return arr;
}
vector reset()
{
for(int i = n-1; i>=0; i--)
swap(arr[i], arr[helper[i]]);
return arr;
}
}
int main(){
vector array = {1,2,3,4,5,6,7,8,9};
Array_operations a(array);
Array = a.shuffle();
Array = a.reset();
}
- 给定一棵二叉树,判断它是否可折叠。可折叠意味着左右子树是对称的(值没有任何作用,在 Leetcode 中值很重要)
- 我被困在第一个问题中,因为面试官想在不使用随机数生成函数的情况下按随机顺序打乱,我使用了许多方法,例如根据当前时间进行交换和许多其他复杂的交换策略,最后面试官允许我使用随机数生成函数。
最后,他们询问了每个方法和函数的时间复杂度以及空间复杂度。
第三轮: HM轮(面试官人数 - 1)
- 给定一个整数数组,将其分成 2 个子序列,使得两个子序列的平均值(单独获取)相等。 (问题链接)
现在以正常的简历为主,关于项目和爱好。
- 您想在 Flipkart 应用程序或网站上实施的任何新功能。
- 你玩过连锁反应游戏(app h,main interview mein bahut game game kar chuka tha),你将如何设计它?
- 当我们在父类中编写“virtual”时,后台会发生什么,它是如何进行运行时多态的?
- 休息一下 CGPA、我读过的书、视频编辑和 Valiant 等 FPS 游戏。 (我在面试和简历中提到了所有这些事情)
- 第 1 轮、第 2 轮发生在 SmartMeet 上(在这些轮次中,他们没有运行我的代码,但在每个代码中都要求我在多个测试用例上干运行,并询问时间复杂度和空间复杂度)
- 第 3 轮发生在 Google Meet 上(在这一轮面试中,面试官让我分享我的屏幕并打开任何代码编辑器并在多个测试用例上运行我的代码。)
我很高兴分享我得到了这个提议。
尖端:
- 不要把它当成面试,让它和面试官讨论(面试官非常友好和支持)
- 采取尽可能多的测试用例来验证您的方法,它将显示您解决任何问题的思维方式和方法。
- 在整个过程中保持自信并发出声音。