第1轮:
这是在 cocubes.com 上举办的编码回合。有一个3分的问题和两个5分的问题需要在一个小时内解决。截止是 13 个中的 5 个。没有部分标记。如果所有隐藏的测试用例都通过了,只有这样你才能获得满分,否则为零。请写出最优化的解决方案,即使是 3 分的问题。隐藏的测试用例是详尽的,所以编写最有效的代码(不接受暴力解决方案)。 TLE 将导致零。还要注意所有极端情况。在最终结果之前,您不会知道您的代码是否正确。
注:主要代码全部给出,您只需完成函数。您可以在函数之间包含头文件。给你写代码的空白都是你的,你可以随意操作它。
问题 :
我的套餐是:
- 最长回文子串(仅接受动态规划解决方案)
- 二叉树中两个节点之间的最小距离
- 查找矩阵中给定单词的出现次数(以任何给定顺序)。(基于 DFS)
3 分题主要基于数组和字符串(操作、贪婪、动态规划)
所有 5 分问题都来自树,除了一个来自图(DFS)
彻底练习树木。
在这一轮中,150 名学生中有 54 名被选中。
第二轮:
这是一个书面回合。 54 名学生被分成 7-8 人一组。每一组都被一个一个地叫了起来。面试官给了 20 分钟的时间来写一段代码。向不同组询问的所有代码都是基于 DFS/BFS 的。
我们的小组被问到:编写一个代码来确定二进制矩阵中岛屿(1 的簇)的数量。
其他问题是——
1. 编写代码确定二进制矩阵中的最短路径(1 是路径 0 表示阻塞)。
2. 编写代码来确定二进制矩阵中最大岛(1s 的簇)的大小。
3.烂橙子问题的简易版。
4. 检查二叉树中2个节点是否在同一个根到叶路径中。
编写清晰的代码。更正和划痕很重要。表明你已经解决了这个问题。即使您之前遇到过这个问题,也不要公然编写代码。面试官会认为你之前把问题搞砸了。我们小组中有 2 人因此被拒绝。慢慢来,展示你的工作。
在向面试官提交代码时,您需要解释您的方法。这是非常关键的。一行一行地清楚地解释你的代码。使用的关键概念以及您初始化的各种变量的用途。例如,在 DFS 中,访问矩阵对于避免重复循环非常重要,解释并指出该矩阵以及使用它的原因。如果你不能向面试官解释清楚,不要沉迷于一种新方法。即使他点头,他也可能不会完全相信,因为你偏离了一般方法(这是一个警告)。一个家伙在这一轮被拒绝了,因为他给出了dp解而不是DFS解。虽然他的方法绝对正确,但他没有向面试官解释。所以坚持使用 GeeksforGeeks 的通用解决方案。该论文已提交给面试官进行进一步评估。然后面试官问了一些代码相关的基本问题。为什么我们更喜欢 DFS 而不是 BFS。是否可以使用 BFS 解决问题。两种方法的基本区别。什么时候 BFS 优先于 DFS。说出来,他一直在标记你。
评估基于 – 口语技能,技术知识,逻辑和思维能力,代码,总体印象。
在这一轮之后,选出了 35 名学生。
注意:分数是第 1 轮和第 2 轮的累积。虽然第 2 轮的最高分数未知。但它比第一轮有更大的偏好。
第 3 轮:
这是一轮小组面试。谜题和代码被问到了。一次叫了4-5个学生。然后面试官给了一个问题。我们被问到以下谜题: 有 15 个酒瓶,其中一个中毒了。有四个玻璃杯和四个人。您将如何混合葡萄酒并将其提供给他们并检测中毒的瓶子。 1滴毒酒可以杀死一个人。面试官暗示我们这是一道数字逻辑题。给我们一张纸来写我们的逻辑。我无法使用二进制代码找出解决方案,而是给出了不同的解决方案。解决方案类似于掉蛋问题。我用适当的解释和递归树在纸上写了我的解决方案。用最大伤亡人数计算最坏的情况。我向面试官解释了解决方案。他很感动。然后他拿起那张纸,用上一轮的纸钉住它。不要复制他人的解决方案。尝试创新和互动。那些不能解决问题的人被给予额外的时间,而其他人则被要求离开。本轮不要空白,因为淘汰的机会很大。因为他们希望在这一轮中淘汰。
评估基于 – 口语技能,技术知识,逻辑和思维能力,代码,总体印象。
注意:最终选择分数是前所有轮次(1,2 和 3)的累积计算
其他组遇到以下问题:
- 打印二叉树第 k 层的所有节点
- 在整数流中查找中值。 (优化方案)
- 查找矩阵中相同整数簇的最大大小
- 检查它是否是二叉搜索树。
- 基于 OOP 的问题。
代码中的小错误是可以接受的。与面试官互动并得到纠正。
由于没有时间我们没有人力资源回合,最终结果是在所有书面表格都经过小组评估和检查后宣布的。 29名学生被选中。我是其中之一:))