📜  Flipkart 采访 |设置 12(校内)

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

Flipkart 采访 |设置 12(校内)

我最近在一次校园实习期间被 Flipkart 选中。这些都是我面临的问题。

  • 在线编码回合(2 个问题)
    1. 给定两组元素,我们必须找出两组的 LCM 结果集是否相等。
      例如:- 让集合为 X = {2, 3, 4}
      那么 LCM 集合将由给定集合的任何子集的所有 LCM 组成。
      在这种情况下,LCM(X)={2,3,4,6,12}
      约束:
      • 两个集合中的元素数量不超过 50。
      • 元素范围即 A_i 和 B_i ≤ 10 9

      我通过首先将不同的元素隔离在不同的集合中来解决了这个问题。
      假设对于集合 A,A' 包含 A 中满足 A'=A-{A 交集 B} 的所有元素
      类似地,B 为 B'。
      现在,对于 A' 中的每个元素,我检查了元素 (n) 的数量,这些元素是其在 B 中的因子,即可能有助于在最终 LCM(B) 中生成 A' 中的数字的数字。
      如果对于 A' 中的任何数字,如果 n<2,则该数字绝对不能在最终的 LCM(B) 集中,并且该函数应返回 false。对 B' 中的所有元素进行了类似的测试。如果函数在这两个循环中没有返回 false,那么答案应该是 true。尽管此逻辑并未涵盖所有情况(例如,如果两个集合是 {2, 5, 70} 和 {2, 5, 10}。答案为 true 但正确答案为 false ),但由于测试用例较弱,因此它通过了. (我的意思是,如果在第一轮出现如此棘手的问题,他们必须在其他地方进行补偿)。

    2. 给定连接城市的道路网络和每条道路的容量(所有道路都相同)以及维修成本(每条道路唯一),我们得到仅使用最短路径在一对城市之间运行的公共汽车数量(n) . (道路容量=该道路上允许的公共汽车数量)。
      不安全的道路是道路上没有公共汽车>道路容量的道路。

    现在给定 n,我们必须最小化所有不安全道路的总体成本。
    从我的记忆中很难理解,我们必须计算不相交最短路径的最大数量,以最小化答案。 (我的解决方案只通过了一个测试用例)。

  • 第一轮(F-2-F)
    我被问到各种各样的问题,从字符串到 dp 再到图表。
    1. 给定一个损坏的字符串,即它是原始字符串,只有错误位置的空格,构造原始字符串。我们得到了一本单词词典。
      Ex:- 
          string: Com put erengineering
          original string: Computer Engineering 

      我给了面试官一个递归的解决方案。然后我被要求编码。之后,有人问我是否可以进一步优化代码。我不能。

    2. 给定一条小巷,那里有各种房屋,每个房屋都包含固定数量的黄金。现在一个强盗必须抢劫房屋,这样当他抢劫一所房子时,相邻的房子就不能被抢劫了。计算他收集的最大金币数量。 (经典 Dp 问题)。
      文章链接:https://www.geeksforgeeks.org/find-maximum-possible-stolen-value-houses/
      练习链接:https://practice.geeksforgeeks.org/problems/max-sum-without-adjacents2430/1
    3. 给定 1000 头大象,它们的确切高度都不知道,给出的陈述将有两种形式
      I. E_i is taller than E_j
            OR
           II. E_i is smaller than E_j 

      计算大象的升序(以高度计)。
      乍一看对我来说似乎很难,但几分钟后,我能够做到。
      (使用语句构造一个 DAG,然后对它们进行拓扑排序以获得答案)

    4. 如果源未知,则对给定的 DAG(不包括森林排列)进行拓扑排序。
      例如:如果边是 1 → 2, 1 → 3, 2 → 4, 3 → 4 。
      然后通常我们会从每个 pt 运行 DFS,然后选择该节点作为访问所有节点的源。
      这完全是一个 O(n 2 ) 算法。
      然后有人问我是否可以使用 O(n) 算法。
      我告诉面试官,如果我们从每个节点运行 dfs,而不是每次只保留数据时都刷新访问过的数组,那么来自节点的 dfs 会标记整个访问过的数组,即所有访问过的节点都是源。
      当从一个节点运行 dfs 时,如果在任何 pt 遇到访问过的节点,我们将离开该节点并移动到下一个子节点。只需在 dfs 期间也保留一个堆栈……。在访问数组中的所有值都被标记之后,我们将在堆栈中获得 DAG 的最终拓扑排序顺序。
    5. 给定一个池塘,所有的石头都以一个单位的距离排列(每行 C 并且有 R 个这样的行),每块石头都有一个特殊的值,表示青蛙可以跳的长度,即如果青蛙在石头 (x, y) 并且值为 k 然后青蛙可以跳到 (x+dx, y+dy) ,其中 dx + dy = k 并且青蛙不会离开边界。找到到达 (R, C) 处石头的最小跳跃次数。
      从矩阵中将其可视化。是否使用 DP ........如果您想知道,对于 cel (x, y) 处的青蛙,运行两个 dx 和 dy 循环,其中 net dx+dy=k 并执行 dp[ x+dx][y+dy]=min(dp[x][y]+1, dp[x+dx][y+dy])。
      答案将在 dp[R][C] 中。
      然后我被要求回溯非常简单的路径,因为 dp[x][y] 从中减去 1 并在 i ≤ x 和 j ≤ y 的单元格 (i, j) 中查找结果值。重复此过程,直到达到 (0, 0)。
      我的第一轮到此结束。还问了一两个问题,但我记不清了。
  • 第 2 轮(F-2-F)
    技术+人力资源
    1. 使用数据结构实现 LRU 和 LFU 页面替换策略。
      文章链接:https://www.geeksforgeeks.org/least-frequently-used-lfu-cache-implementation/ 在准备亚马逊的时候已经遇到过这个问题。
      我使用双端队列和哈希图(Map 或 BST 无关紧要,因为两者在检索和插入数据方面具有相同的复杂性)。
    2. 给定一个普通骰子和一个空白骰子。填写空白骰子,使得两个骰子的数字之和对于所有结果和的概率相同,并且总和的范围为 1 到 12。
      经过一击和试验,我意识到空白骰子上的数字会被重复以给出均匀的概率分布。
      毛坯模具所需的最小元素 = 0
      毛坯模具所需的最大元素 = 6。
      用 0 标记 3 个边,用 6 标记三个边。
      由于毛坯模具上出现0和6的概率相同,等于0.5,
      P(每个总和)=1/2*P(i)=每个数字的 1/12。
      现在开始时取 1/12,然后推导出解决方案应该很容易,但由于一天的劳累和恶劣的天气,我想到了后门方法。
      一些与大学期间完成的小项目相关的人力资源问题,以及与我作为客户使用 Flipkart 的经验相关的问题。
  • 第三轮(奖金轮)
    我们中有四个在第二轮后被选中的人被要求参加 GD 轮,他们告诉我们他们只希望我们两个人参加。
    我们对这种说法感到困惑。
    他们告诉我们他们想要一个小组讨论主题为什么 FLIPKART 雇用你?
    我们持续了 10 分钟,试图用 Flipkart 的优势为他们加油,天知道会发生什么。
    然后我们在一个chit上得到了我们的结果。
    打开小贴士后,我们意识到这只是一个恶作剧。
    WTF !!欢迎来到 Flipkart

如果您喜欢 GeeksforGeeks 并愿意做出贡献,您还可以撰写文章并将您的文章邮寄至 review-team@geeksforgeeks.org。在 GeeksforGeeks 主页上查看您的文章并帮助其他 Geeks。

Flipkart 的所有练习题!