📜  Accolite 面试经历 |第 3 组(校内)

📅  最后修改于: 2021-09-22 10:39:58             🧑  作者: Mango

书面多选题
30分钟内有20道选择题,大部分技术题来自geeksquiz,1道血缘关系题和1道简单概率题。

没有负面标记。

纸编码轮
21 名学生从第一轮 MCQ 中入围,在这一轮中,我们被要求在 1 小时内编写 3 个问题的代码(仅限函数)。
一季度。给定一个大小为 MxN 的矩阵,矩阵中只有可能的值是
0 – 代表空仓
1 – 代表一个新鲜的苹果
2 – 代表一个烂苹果
腐烂的苹果在 1 单位时间内将所有新鲜的苹果转化为与其相邻的腐烂的苹果。给定矩阵的输入,您必须计算所有新鲜苹果腐烂的时间。还要确定是否所有的新鲜苹果都可以在有限的时间内腐烂。 (20 分)

输入
2 1 0 2 1
1 0 1 2 1
1 0 0 2 1

1个时间单位后,矩阵将转换为
2 2 0 2 2
2 0 2 2 2
1 0 0 2 2

在 2 个时间单位后,矩阵将如下所示
2 2 0 2 2
2 0 2 2 2
2 0 0 2 2

因此输出应该是 2 个时间单位。 (相邻的定义仅包括左、右、下和上单元格和非对角线单元格)

Q2。给定一棵二叉树,您需要找出二叉树任意 2 个叶节点之间的最大路径和(最大路径和可能会或可能不会通过树的根)。在 O(n) 时间内完成(20 分)

Q3。给定一个未排序的整数数组,您需要找出其中是否存在多数元素。 (多数元素是在大小为 n 的数组中出现次数超过 n/2 次的元素)。在 O(n) 时间内完成(10 分)
这一轮的结果是在深夜宣布的。大约有 7 或 8 名学生被要求进行面对面的面试。我是第一个被叫到的人,F2F 回合从晚上 11.30 开始,在早上 5 点结束:-p 我很幸运在凌晨 1.15 左右有空😀

面 2 面第 1 轮
一季度。我无法完成我的论文编码轮问题 1(烂苹果)。她(面试官)让我改正里面的问题。我在 MxN 额外空间的帮助下完成了访问 [][] 矩阵。她说就地做。我是通过将 Matrix 值修改为 3 、 4 等来实现的。🙂

Q2。从单向链表中的最后一个元素中查找第 5 个元素。首先,我给出了一个需要两次遍历的解决方案。她说只在 1 次遍历中完成。我通过取两个指针并在它们之间保持 5 个节点的距离来做到这一点。 Q3。例如,如果输入字符串是“我是 abc xyz”,则会给出一个字符串。输出应该是修改后的字符串,如“xyz abc am I”。这将在 O(n) 时间内就地完成。

第 4 季度。给定一个由正整数和负整数组成的未排序数组。您需要在 O(n) 时间内找出最大和子数组。您需要找到开始和结束索引以及总和。

Q5.给你一个 BST 和两个密钥 k1 和 k2。您需要迭代地找出两个键的最低公共祖先。我建议的解决方案是将路径存储在向量中,并找到根中键值与 k1 和根 t k2 路径的第一个不匹配。

面对面第2轮
一季度。以纸编码圆形烂苹果问题为例,并提出一些算法,允许您以这样的方式改变腐烂和新鲜苹果的位置,使得结果矩阵将最少数量的新鲜苹果转换为烂苹果。我建议了一种方法,我首先首先计算腐烂和新鲜苹果的数量,然后将所有新鲜苹果从 (0, 0) 位置开始排列在子矩阵中,同样地将所有腐烂苹果排列在来自 (N-1) 的子矩阵中, M-1) 位置。他对这种做法很满意

Q2。你有一个有 3 部电梯的电梯系统,你必须提出一些算法,其中一个人在某层等待并按下向上或向下按钮的时间应该等待最少的时间,还有里面的人电梯也不应该等待太久才能到达他的目的地楼层。

Q3。问了一些关于什么是语言标记的一般问题。什么是语法和产生式规则。然后他让我检查某种语言的给定代码在语法上是否正确。您将获得此语言的有效标记集以及符号表。

第 4 季度。您将获得一个存储字符或单词的文本文件。建议一些压缩文件的方法,以便始终可以压缩一定数量的空间。

我建议使用特里树,因为所有前缀都将共享空间。他说这种方法取决于输入是否具有公共前缀。
建议其他方式。然后我说我们可以使用霍夫曼编码并为文件中最频繁的单词分配最小的代码等等。他再次表示,这种方法还取决于您的输入是否有频繁出现的单词。

然后我建议,因为所有字符都可以用 8 位或 1 个字节表示。我们可以对上一个和下一个字符进行异或并将其存储在当前字符位置。通过这种方式,我将能够始终将编码文件的大小减少 2 倍。这个想法类似于 https://www.geeksforgeeks.org/xor-linked-list-a-memory-efficient-doubly-linked-list-set-1/

他很满意,这是我第二轮 F2F 的结束。他让我睡一会,因为你将与我们的技术经理进行 Skype 面试,然后是早上的人力资源回合。

第三轮(Skype)
一季度。他让我定义 NP 和 NP 难题,然后是自动机和正则语言的定义。然后他问我是正则表达式。

Q2。他与我分享了一个谷歌文档,并给了我一个正则表达式,如 abab*(a|b) 和一个输入字符串s。我需要编写一个代码来检查给定的输入字符串是否可以从这个正则表达式生成。返回布尔值 true 或 false 值。我在 5 分钟内完成了编码:-p

Q3。给定一个 N 元树和一个值 K。如果存在某个根到叶路径的 sum = k 和 false,则需要返回 true。我使用递归并在 O(n) 时间内完成了它。

他告诉我,你将在一段时间内进行最后一轮 HR。我知道我做得很好,因为他似乎对我的回答很满意。

最后一轮人力资源
那是我等了几个小时的回合😀
她(HR)首先提出了一些一般性问题,比如告诉我关于你自己以及你的人生目标和目标。你的爱好是什么。我告诉她我喜欢艺术和手工艺。她问我,如果明天是她的生日,我会为她做些什么:-p 她非常友好,很乐意与之交谈。 🙂 我似乎没有在和 HR 说话。这更像是和朋友聊天。她问我喜欢 Accolite 的什么以及我为什么希望加入公司之类的东西。最后,我们讨论了 Accolite 的薪酬标准和工作文化。

相关实践问题

异或链表
最大路径和
多数元素
链表末尾的第 n 个节点
BST 中的最低共同祖先
反转给定字符串的单词
Kadane 算法
烂橘子
Accolite 的所有练习题!