📜  谷歌校外 [SDE-1]

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

谷歌校外 [SDE-1]

我最近面试了谷歌,这里是我的详细经历。面试过程大约需要 5 个月才能完成,因为它们为您提供了充足的时间来准备面试,因此当您参加面试时,您处于最佳状态。

人力资源回合:谷歌是第一家人力资源部自己进行小规模快速回合测试的公司,以测试候选人是否值得安排与谷歌工程师之一的电话筛选。
几个问题:

  1. 堆排序的最差时间复杂度?
  2. 合并排序好还是堆排序好?为什么?
  3. 快速排序的复杂性是否取决于我们选择的枢轴元素,例如中间元素、最右边的元素或最左边的元素?
  4. 2^24 的值是多少? (在这里 HR 想检查如果我没有任何计算器,我将如何进行此计算。)

对于正在为谷歌做准备的人来说,这一轮很容易,但对于一些没有预料到这一点并且可能最终给出错误答案的人来说,这可能会让他们感到惊讶。

电话回合:这一回合整整 45 分钟。面试官直奔问题。在这一轮中,管理时间、代码可读性以及所提供解决方案的正确性是至关重要的。此外,您必须在 Google Docs 上编写代码,因此缩进代码对于维护干净的代码很重要。

问题:您得到 2 个完全相同的字符串,但 1 个字符串有一个额外的字符。找到那个字符。

方法:对字符串进行排序并继续匹配,直到找到额外的字符,因为它不会出现在其他字符串中。时间复杂度 – O(nlogn)。

他让我编写解决方案的代码。在此之后,他要求我进一步优化它而不对字符串进行排序。