- 从 2 个简单的数据结构程序和 30 道能力题开始;幸运地通过了这一轮并获得了面对面的面试资格。
- 我只被问到技术一和二中的数据结构问题。
- 最长和连续子数组。我在面试前几天看到了这个问题的解决方案,但在面试中我一点头绪都没有;并为这个问题提供了一些愚蠢的解决方案;正确的解决方案是使用 Kadane 算法。
- 在字符串中查找重复项。
- 在数组中查找重复项。
- 给定一个二进制数组(只有 0 和 1),按升序对其进行排序(所有 0 向左,所有 1 向右)。我首先给了他一个 O(n*n) 的解决方案。他让我优化并给出一个 O(n) 的解决方案。他给了我一个线索,我必须使用两个指针(一个从开始,一个从结束,以在一次迭代中实现这一目标)。
除了第一个问题我都答对了,也通过询问公司的问题来表达我对这家公司的兴趣,所以被推到了下一轮。
下一轮
第一轮问的是什么?日子过得怎么样?等等。后来他问了我几个数据结构的问题。
- 给定一个从 1 到 100 的数字以随机顺序排列的数组;如果缺少一个数字,请找到那个缺少的数字。
我告诉他我们可以对数组中的所有元素求和,我们会得到一个总和,可以从前 100 个元素的总和 ((100*101)/2=5050) 中减去,得到缺失的数字。他对这个答案很满意,因此转向下一个问题。 - 给定一个从 1 到 100 的数字以随机顺序排列的数组;如果缺少一个数字,而不是那个数字,另一个数字会重复,所以找到那个丢失的数字。
我告诉他我们可以使用哈希表有效地解决这个问题,但他告诉我尝试不使用哈希表。
所以后来,用前100个元素的正差和数组中元素的总和给了他解决方案;我想我没有给出正确的答案。但我试图以某种方式找到最合适的解决方案,至少让面试官满意,他对此还算满意。 - 将数组分成两半,使它们的总和相等。
- 将数组分成两半,使它们的平均值相等。
- 我尝试了一些基本的解决方案,但未能通过 2 个以上的测试用例。哈哈;基本上我对这个问题的解决方案非常糟糕。这个问题必须用DP来解决,我不太擅长,所以没能做到。但是我没有告诉他,给了他一些解决方案,解决了他给我的一两个测试用例。
后来一有机会,就问了他很多问题;并确保我似乎对这家公司感兴趣;幸运地被推到了人力资源回合。
人力资源回合
这很有趣;有很多人力资源问题。
如果你喜欢 GeeksforGeeks 并愿意做出贡献,你也可以写一篇文章并将你的文章邮寄到 review-team@geeksforgeeks.org。在 GeeksforGeeks 主页上查看您的文章并帮助其他 Geeks。