📜  SDE-1 的 Flipkart 面试体验(2019 年校内)

📅  最后修改于: 2022-05-13 01:58:20.124000             🧑  作者: Mango

SDE-1 的 Flipkart 面试体验(2019 年校内)

资格: 5 CPI 及以上

207 名学生有资格参加编码轮

编码轮(HackerRank):90 分钟; 3个问题按难度排序

问题 1:给定 2 个字符串的 Hashing 的基本实现

问题2:滑动窗口技术

在办公室安排了一次会议,会议持续时间 t,从时间 0 开始。在会议之间有 n 个演示文稿,其开始和结束时间已给出,即第 i 个演示文稿从 s[i] 开始,在 e[i] 结束]-1。演示文稿不相互重叠。给您 k,即您可以重新安排的最大演示数,以保持原始顺序不变。请注意,演示的持续时间无法更改。您只能更改开始和结束时间。你的任务是最大化会议期间没有安排演示的最长时间。

约束:-

1<=t<=1, 000, 000, 000

0<=k<=n

1<=n<=100, 000

e[i]<=s[i+1], 0<=i

s[i] < e[i] 对于 0<=i<=n-1

问题 3:2-D Dp 问题

面试-:

23 已选择

此外还有一个 5 人的候补名单 7 人的扩展候补名单(尽管候补名单和扩展候补名单从未被要求面试)

注意-:您告诉的每种方法和您所做的优化都会被记录下来;您将获得的提示也会被注明;提示越少,选择的机会越大

第1轮:

30分钟;没有简历;没有介绍; 2个问题;正确编码

问题 1:给定一个数组,找到 a[i]+a[j] 的最大值,其中 |ij|>1 即 i 和 j 不相邻

解决方案:O(n) 空间 dp(不可接受)

最多 4 个带有伪代码的数组

问题 2:给定具有排序级别的完整二叉树

Input :        1 
              / \
             /   \
            5     6
           / \   / \
          /   \ /   \
         7    8 9   16

search for an element ( no extra space )

brute force-: O(n) simple traversal of tree

需要的解决方案 - :假设元素存在,并首先通过在 log(N) 时间内查看每个级别的最左侧节点来找到给定元素的级别

现在在关卡上应用二分查找

二分搜索可以以两种方式应用

1-:在每次中间搜索之后通过左子树或右子树来减少树,其中中间元素可以是左子树的最右边节点或右子树的最左边节点

2-:可以使用的一个有趣事实是数字的二进制表示可以帮助您到达该节点

例如,如果它是第 4 级并且节点是 5(从 0 开始编号该级别的最左侧节点)表示 101

1 表示向右遍历,0 表示向左遍历

1
           /       \  
          2          5  
        /  \        /  \
       7    8     10   12
     /  \   / \    / \
    14   15 16 17 18 19
19 is on node 5(101 or RLR) from 1-(right)->5 -(left)->10 -(right)-> 19

时间复杂度-: log(N) * log(N)

14人晋级第二轮

第二轮:人力资源兼技术

基于简历的问题

1. C++中向量的工作

2.项目讨论(面试主要部分)

3. 项目中表的连接性

4. 归一化类型

5. BCNF 定义以及我为什么在我的项目中使用mit

6. 未来3年的规划

7. 为什么是 Flipkart?

在我告诉他答案后,他问你从哪里复制答案,我说我的功课做得很好,所以他又问了我一个问题:

8. 你如何为实习做准备

IB 用于编码,GFG 用于主题,HR 来自各种博客

9. 你知道的语言

等等

8名学生晋级决赛

第三轮:

30分钟延长一小时

他问我感觉如何

“对食物和 Flipkart 都感到饥饿”,我回答道。

“选择任何一种食物或flipkart。”他加了

我说“被安置后我很想和你共进晚餐”。

对他的回答印象深刻,他开始了采访

问题 1-: 给定一系列具有一些利润值的区间

你不能选择重叠的间隔,必须最大化利润

让给定的间隔集格式为 {start time, end time, value}{{1, 3, 100 }, {2, 4, 200 }, {5, 7, 500 }, {6, 8, 600 } , {1, 100, 800 } }

回答选择区间 2 和 4 或选择区间 5

最大利润为 200+600 = 800

O(N^2) 时间复杂度 DP 代码被接受,但所需的解决方案是 O(N*logN)

问题2-:

https://www.geeksforgeeks.org/minimum-steps-reach-target-knight/ 的扩展版

2a-:给定无限平面上的源和目的地

以最小的步数到达目的地像骑士一样移动(在国际象棋中)

2b-:对您的方法进行交叉质疑,为什么是 BFS 而不是 DFS

2c-:isvisited()函数的映射或二维矩阵数据结构?

2d-:现在在飞机上阻挡一些有限的点,你会去上班吗?如果不是,请更正

答案是从两端应用 BFS,如果 2 个给定队列中的任何一个为空,则无法到达

2e-:代码的时间复杂度和空间复杂度

问题 3-:给定一个 0 和 1 的矩阵

找到使用 1 形成的最大长度 X

1 1 1 1
0 1 1 0
0 1 0 1
1 0 1 0
BOLD 1's form a X of length 3

Brute Approach-:

假设 m[i][j] 是 X 的中心并在 4 个对角线复杂度 O( m*n*(m+n) ) 中遍历 1

公认的解决方案是 O(4*m*n) 空间记忆和 O(m*n) 时间复杂度

其中 dp[i][j][0], dp[i][j][1], dp[i][j][2], dp[i][j][3] 存储 1 的最大数量到目前为止,分别为 m[i][j] 的四个对角线(左上、右上、左下和右下)

最后5人被选为全职角色🙂