📜  谷歌面试体验 SDE-1(校外)2022

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

谷歌面试体验 SDE-1(校外)2022

第 1 轮- 简历入围

第 2 轮- 招聘人员电话(15-20 分钟电话交谈)

第 3 轮– 电话面试(45 分钟技术面试)

提问: https://leetcode.com/problems/time-needed-to-inform-all-employees/

由于没有给出头节点,因此提出了这个问题的一个变体,即不确定哪位经理 CEO 会给出消息,我的任务是首先找出哪个节点应该是起点,然后找到总数接触所有员工所需的时间。

此外,输入不是一个简单的整数,它是一个包含姓名、员工 ID 和向该员工报告的员工数组的结构。我继续用图表来解决这个问题,首先运行 DFS 来找出头节点,如果 CEO 向其发送消息,它将到达所有员工,然后运行 BFS 来找出总时间。信息传达给所有员工。

第 4 轮- 现场面试(在会议上进行 - 15 分钟 GNL 轮,45 分钟技术)

GNL 轮– 谷歌搜索和领导力轮,询问基于行为的问题,以检查候选人是否适合 Google 文化。

提出的问题:

  • 有多少个长度为 n 的二进制数?
  • https://www.techiedelight.com/find-n-digit-binary-strings-without-consecutive-1s
    有人问这个问题的一个变体,没有两个连续的零应该在一起。
    我用递归解决了这个问题,然后用动态编程对其进行了优化,最后,最优化的代码没有使用任何额外的空间并且具有 O(n) 时间复杂度。
  • https://math.stackexchange.com/questions/1322767/find-a-recurrence-relation-for-the-number-of-ternary-strings-of-length-n-that-do
    有人问这个问题的一个变体,没有两个连续的零应该在一起,三个连续的 1。我的方法类似于上面的问题,首先从递归而不是动态编程开始,最终的解决方案是 O(n) 时间复杂度,没有使用额外的空间

第五轮(现场面试)

在比赛中进行 - 15 分钟 GNL 回合,45 分钟技术

提出的问题 -给定输入方程,输出真或假

For ex. {a>b, b>c ,c>d, d>a} is this input true or false?

这里的输入是矛盾的,所以输出是错误的。我的方法是将所有变量视为图的节点,然后如果 u>v 则从顶点 u 到 v 绘制一条边,如果图中存在循环,则输出将为 false。

DFS 的拓扑排序可用于检测有向图中的循环。

第六轮(现场面试):

在 Meet 上进行 - 15 分钟 GNL 轮 45 分钟技术

提出的问题

  • 给字符一个输入字符串s ,返回 s[i] < s[i-1] 的索引
For ex. - "De-Hi&yaR2"
Output - 7  

说明:连字符、& 和其他不是字母的字符不必考虑字符串的字母顺序,大写或小写字母与 e>d 和 e>D 无关,所以我在解决问题时的方法是将所有字母转换为小写,然后比较它们,如果遇到则忽略其他字符。

  • 给定一个数组,其中 arr[i] 保存 arr[i+1] 中出现的数字的频率,我们应该实现 next() 和 hasNext() 方法,直到所有数字的频率为 0 hasNext() 返回true 并且 next() 在遍历具有非零频率的数组时返回第一个数字。

现在当再次调用 next() 时,它将输出 0,因为 0 的频率为 3,现在它将变为 2。可以多次调用 next(),以此类推,直到 hasNext() 不返回 false。