第 1 轮:HackerRank 测试 – 90 分钟
1:求圆圆周上的总格点。
参考:https://www.geeksforgeeks.org/circle-lattice-points/
2:关于Graph DFS的问题(不太记得问题了)
建议:如果问题不清楚,请多读一遍。记下约束条件。不要惊慌,保持冷静。有足够的时间来解决这两个问题。
注意:要晋级下一轮,这两道题都需要解决。
第 2 轮:CoderPad 轮
CoderPad Round 也是一个编码轮,您必须在其中实时编码,即屏幕在您和面试官之间共享,面试官将与您通话。
1:查找数组中的第一个非重复字符。
参考:https://www.geeksforgeeks.org/given-a-string-find-its-first-non-repeating-character/
2:从数字数组中形成最大可能的数字。
参考:https://www.geeksforgeeks.org/given-an-array-of-numbers-arrange-the-numbers-to-form-the-biggest-number/
建议:首先与面试官讨论不同的算法,然后开始编码。面试官会给你提示所以不用担心🙂
注意:代码在语法和逻辑上应该是正确的,因为代码将由编译器编译,并且您必须通过所有测试用例。至少有一个问题要完全解决才能有资格进入下一轮。
第 3 轮:电话面试 – 45 分钟
在这一轮中,你基本上会被问到一个关于你的技术技能的问题和一些与数据结构相关的问题。
Java问题:
1. 面向对象的概念。
2. 抽象 vs 接口
3. HashMap 内部实现。
4. Equals 和 Hashcode 的概念。
5. 设置 vs 列表
6. ArrayList 与 LinkedList
7. 最终关键字
设计问题:
1. 设计会议室分配系统,考虑可用房间的时间和数量限制。
算法:
1. 树——前序、后序、中序
2. 图 – DFS 与 BFS
第 4 轮:电话面试(来自纽约 HO 的资深人士)– 45 分钟
这一轮的问题主要是关于行为技能的问题,很少有设计和算法的问题。
行为问题:
关于您的经历的问题,例如:
1. 过去开发任何应用程序所面临的挑战。你是如何处理它和结论的?
2. 您必须改变工作生活方式的情况。
3. 你和你的经理发生冲突的情况以及你是如何处理的。
设计问题:
1. 设计蛇和梯子游戏。
算法:给定一个循环链表,检测其中的循环。
参考:https://www.geeksforgeeks.org/detect-and-remove-loop-in-a-linked-list/
建议:像朋友一样和他们讨论。告诉他们你想到的所有方法。他们不会要求您编写解决方案的代码。
注:以上2次电话采访为背靠背。
第 5-8 轮(亲自)
第 5 轮:
关于Java概念和多线程的问题。
他们会给你一份问题陈述,并要求你设计解决方案并将代码写在纸上。
算法:
1. 最小翻转使二进制字符串交替。
参考:https://www.geeksforgeeks.org/number-flips-make-binary-string-alternate/
2. 房屋的最大可能被盗价值。
参考:https://www.geeksforgeeks.org/find-maximum-possible-stolen-value-houses/
第 6 轮:
Java问题:
1.JVM内部架构。
2. Java的内存分配(堆栈 vs 堆)
3. 非常大的 n 的斐波那契数列。
4. 水壶拼图
5.给定X和Y,如果输入是Y,则wap输出X,如果输入是X,则输出Y。不允许使用条件运算符。
解决方案:使用 +, ^运算符。
6. Design Snake and Ladder——你必须确定所有的类及其成员变量和方法以及不同类之间的关系。
第 7 轮:
简历中的所有问题以及一些数据库概念和难题。
讨论当前组织中的角色和职责。
第 8 轮(招聘经理)
基于情境的问题、行为问题和一些谜题。
参考:https://www.geeksforgeeks.org/puzzle-round-table-coin-game/
这个问题的变体在方桌而不是圆桌上。
注意:这个过程很长,需要太多时间,所以即使你没有准备好,你也会有足够的时间在这个过程中做好准备。所以保持冷静,继续做好准备😉
在我的情况下,过程花了将近 2 个月。该过程在 6 到 12 轮之间变化,具体取决于您的表现和公司要求。
希望这会帮助你们和所有最好的人🙂