三星来我校参加 2021 年暑期实习,这是一次校内机会,来自 CS、ECE 和 Electrical 分部的 CGPA 超过 7.5 的学生有资格参加在线测试。共有约180名学生符合资格进行测试
第 1 轮(在线编码):这是一轮编码。它是在 co-cubes 平台上进行的。有3个编码问题,3分之一和5分中的两个。测试的持续时间为 70 分钟。每个人的问题都不同,但难度相似,幸运的是我有一组更简单的问题。
3个问题是
- 找出给定数字的阶乘中的最后一个非数字
- 将给定的树转换为其总和树(即每个节点都包含原始树中左右子树的总和)
- 你得到了一个 BST 并且你得到了这棵树的两个键,你应该从这棵树中删除不在给定中的键。最后返回修改后的 BST 的根,这类似于
我很快就解决了所有三个问题。一天后,这一轮的结果出来了,16名学生被选中进行进一步的轮次
第二轮(技术面试):这一轮主要集中在算法和技术技能方面。面试被安排在Skype上。面试官最初让我介绍自己 5 分钟左右,然后开始问我简历中的问题。
面试官问了很多关于我的项目的问题,我的项目是基于机器学习和Android开发的,所以他对ML项目进行了深入的讨论,然后他问我你对哪种编码语言感到满意。我回答 C++
然后没有浪费任何时间,他转向关于算法的问题。他把代码对编辑器的链接分享给了我。所以需要一个正确的代码来解决给定的问题
- 给定链表的随机指针,您必须从链表中删除该节点(请注意,未给出链表的头指针,您必须删除具有该地址的节点,因此在遍历该节点地址时不应出现任何地方)。这类似于从没有头指针的链表中删除节点。有一点,你不能简单地交换下一个节点的数据并删除下一个节点,而是必须删除给定的随机指针,后来他向我提供了头指针,并询问我的代码的时间复杂度已经写了。
- 给定一个矩阵 A[m][n],其中 A[i][j]=i+j 表示该楼层的重力值,这里 m 表示楼层编号,每个楼层都有 n 个块。你得到了 k 个鸡蛋。经过重力阈值后,鸡蛋会在重力值大于该值时破裂,因此您需要找到最坏情况下所需的最少试验。 https://www.geeksforgeeks.org/egg-dropping-puzzle-dp -11/
这个问题与向我提出的问题类似,但不同的是,尽管方法非常相似(预期有 DP 解决方案),但这里的下限值以二维矩阵形式给出,几分钟后我想出了逻辑并为相同的代码编写代码,然后他问我我的解决方案的时间复杂度然后他在面试结束时问了最期待的问题“你有什么问题要问我吗”,我问了他几个问题。
我已经成功解决了这两道题,几个小时后,这一轮的结果出来了,13名学生被选中进入下一轮
第三轮(技术+人力资源):这是最后一轮面试。这一轮从“告诉我关于你自己”的问题开始,然后他转向我的项目。
他让我解释我的项目,他问了一些交叉问题,然后他问了我一些 OOPS 的概念。
问题来自主题:
多态、虚函数、复制构造函数等 oops 概念,然后根据父子类给出的不同条件的一些速射问题,他问我每个条件的输出,他给了我大约 10 个条件
他想检查我对 oops 概念的掌握情况(尤其是在运行时和编译时多态性方面)。
之后,他给了我骆驼香蕉拼图。然后他继续问一些与数据结构相关的问题
- 使用数组队列实现堆栈。
- 使用数组、堆栈实现队列
- 使用双向链表实现堆栈和队列
给出了编辑器的链接,我只需要完成push和pop的函数。最后问了一些简历相关的问题。
最后他问我“你有什么问题要问我吗”,我问了他几个问题。然后他以祝我“一切顺利”结束采访。
一天后结果出来了,最终有6名学生被选中参加暑期实习,我就是其中之一
提示:
- 平台co-cubes写代码不太好,不支持C++的各种库函数,测试前先熟悉一下。
- 请参阅 GeeksforGeeks 进行面试准备。
- 解决很多谜题(请参阅 GeeksforGeeks 谜题和采访位谜题部分)
- 精通数据结构和算法(参加CodeChef、Codeforces、HackerEarth的每一场比赛,因为我擅长竞争性编码,所以对我帮助很大)。
最重要的技巧是保持冷静,让面试官知道你在想什么,以防万一你陷入困境,向他们询问他们是否准备好帮助你的提示。在整个采访过程中保持温和的微笑将是锦上添花。