第 1 轮(Google Meet 面试 DS + ALGO 1H 10M):从快速而健康的介绍开始。他问了我一些关于我过去项目的事情,然后我们继续提问。这一轮一共有三个问题。
-
问题 1:设计具有给定约束的数据结构
-
问题 2:给定一个字符矩阵、该矩阵中的初始位置和名称列表。返回此矩阵中存在的所有可能名称。
据说矩阵中存在一个名称,您可以将矩阵中该名称的所有字母连接在一起,从初始位置开始。如果第二个字母在第一个字母位置包围的 8 个相邻位置(At Max)中,则可以连接两个字母。 [一个位置不能被考虑两次]。例子:
['a', 'b', 'c', 'd'] ['e', 'f', 'g', 'h'] ['w', 'x', 'y', 'z'] ['m', 'n', 'o', 'p'] Initial Location = Loc(y) names = ["abe", "yxz", "yxo", "yxm", "xyf", "yxy", "yozp", "yozpo"] Output = ["yxo", "yxm", "xyf", "yozp", "yozpo"]
-
问题 3:给定一个模式,带有 ‘0’、’1′ 和 ‘?’。例如:001?01?1。打印可以从此模式生成的所有可能的字符串,其中 ‘?’可以替换为 0 或 1。因此对于上述情况,将生成 4 个可能的字符串。它可以使用回溯轻松解决/
期望:解决任意两个问题。
第 2 轮(Google Meet 面试 ALGO + LLD 1H 20M):从快速介绍开始。然后我们继续提问。这一轮一共有两个问题。我已经解决了他们两个。
-
问题 1:一个冗长的问题,可以分解为广度优先搜索。
-
问题 2:扫雷艇的低级设计。 [在了解以下操作之前观看扫雷游戏视频,如果您不了解规则/游戏]
操作:- 创建自定义网格。
- 根据标准扫雷规则生成带有数字的炸弹
- 允许用户打开单元格,标记单元格,在打开炸弹时结束游戏。
- 宣布在标记所有炸弹并打开所有单元格时获胜
- 打开附近没有炸弹/数字的所有附近单元格,如果打开的单元格附近没有炸弹[最重要]
第 3 轮(Google Meet 面试 [VP Round] DS 1H 30M):以非常健康和愉快的介绍开始。在最初的 20 分钟里,他通过询问与工作、抱负、兴趣以及我在现实世界和技术世界中如何处理问题陈述相关的多个问题来了解我和我的思维过程。之后,他问了我一个数据结构问题。
-
问题 1:给定城市中人的 n 个名字[将包含重复的名字] 的列表,按降序打印最受欢迎的 K 个名字。
期望:没有要使用的高级 STL/集合。最大:数组 / LinkedLists / HashMaps。 O(n) 用于制作数据结构。 O(K) 用于查找所有 K 中最受欢迎的名字。
我使用我的自定义方法做到了这一点,使用 2D 双向链表保留每个名称的计数,并在 HashMap 中保留对这些节点的引用。
第 4 轮(Google Meet 面试 HR 讨论 30M):这主要是讨论轮而不是评估轮。我们讨论了角色、机会、薪水等。
提示:
- 不造假
- 演讲技巧最重要。即使您无法想出代码,也要尝试解释该方法
- 大多数问题都询问了广度优先搜索及其突变。练习那个。
- 故障安全。如果你什么都不知道。解释某事,然后尝试将注意力转移到您感兴趣的部分。
- 练习要说的正确单词
- 带着新鲜的心情去吧。
- 如果您给出错误的答案或不知道,请不要惊慌。失败绝对没问题。是的,失败也没关系。你会受到相对的评判。