有2轮简历选择,1轮在线编码和2轮技术轮,以及1轮HR。
编码回合:
总共问了 4 个问题(我能够完全解决其中的 3 个问题,包括最难的一个)。一个很容易,两个中等,最后一个很难。
- 给定一个大小为 N*N(空)和 k(操作数)的矩阵。在每个操作中,您将获得两个值 r(第 r 行)和 c(第 c 列),您必须在第 r 行单元格和第 c 列单元格中放置“X”。每次操作后,您都需要打印矩阵中空单元格的数量。
例子:
n = 5, k = 3 1st operation : r = 3, c = 2 2nd operation : r = 4, c = 4 3rd operation : r = 3, c = 5
输出(每次操作后的总空单元格):
16 9 6
- 有N个学生和K个太妃糖。如果两个条件都满足,学生可以吃太妃糖:
- 他/她必须能够拿走他/她想要的所有糖果。
- 他/她的所有朋友必须能够拿走他们想拿的所有糖果。
技术第一轮:基于编码、数据结构和算法、DBMS、行为
- 与指针(主要是指向二维数组的指针)和地址(深入)相关的(https://www.geeksforgeeks.org/pointer-array-array-pointer/)
- https://practice.geeksforgeeks.org/problems/first-and-last-occurrences-of-x3116/1
- 找到所有的三胞胎:https://practice.geeksforgeeks.org/problems/find-triplets-with-zero-sum/1
- DBMS 查询和问题
第二轮技术:基于项目、编码、数据结构和算法、OOP、DBMS、行为
- 关于项目的详细讨论,如所使用的堆栈和技术、面临的问题、您如何设法使您的应用程序高效、数据库结构和模式、功能性和非功能性需求、安全性、可扩展性等。
- https://practice.geeksforgeeks.org/problems/print-anagrams-together/1
- 什么是单例类以及如何在Java/ C++ 中创建这样的类。(https://www.geeksforgeeks.org/singleton-class-java/)
- 什么是多线程以及如何避免多线程一次访问资源? (https://www.geeksforgeeks.org/synchronized-in-java/)
- 什么是正则表达式?如何有效地查找数据库中与给定 Regex 不匹配的所有数据(文档)?
- 使用 Mongo DB 和 Firebase 作为数据库有什么好处(我告诉他们我使用过 Firebase 和 Firestore)?
- 如何避免编译器对某些资源进行优化。 (https://www.geeksforgeeks.org/understanding-volatile-qualifier-in-c/)
- O(n) 时间和 O(1) 空间而不改变元素的相对位置。 (https://www.geeksforgeeks.org/rearrange-array-alternating-positive-negative-items-o1-extra-space/)
- 你是如何测试你的应用程序的?你是如何应用单元测试的?
- 你是如何优化你的 React 应用程序的? (我的回答是:使用延迟加载、分模块、优化webpack等)。
- 关于加密与散列有何不同的问题? (https://www.geeksforgeeks.org/difference-between-hashing-and-encryption/)
- React 面临哪些问题? (https://www.growth-rocket.com/blog/a-closer-look-at-client-side-server-side-rendering/)
结论:面试官主要关注你如何处理问题,而不是你完全解决了问题。他们更专注于 DSA,如果你已经做到了,开发就是边缘点。
HR回合(电话):
- 诸如是否可以让您在之前的所有轮次中做得更好以及如何做得更好,您最大的失败是什么,您对我们或我们的公司了解多少等问题。
- 这一轮是关于测试候选人以及我采取了哪些步骤来解决上述问题。
又问了一些问题。面试时要积极、大声。不要紧张,不要急于回答问题。慢慢来。面试官主要是友善且乐于助人(就我而言,他们非常友善、有礼貌,无论我遇到什么困难都会帮助我)。相信自己,永远相信上帝。
感谢 GeeksforGeeks、HackerRank、HackerEarth、CodeChef、Codeforces。