第一步是在线编码评估。
在这一轮中,问了三个编码问题,但过程与其他公司不同。没有编译器,也没有测试用例。只有问题陈述和一个简单的文本编辑器。第一道题一般比较简单,第二道题中等,第三道题难度较大。
您不应该为问题的解决方案编写确切的代码。即使是逐步算法或伪代码也足以让您通过(仍然建议使用注释良好的代码)。主要议程是您必须成功地将您的想法传达给正在评估您的解决方案的人。问题如下——
- https://www.hackerrank.com/challenges/two-characters/problem?h_r=internal-search
- https://leetcode.com/problems/reverse-nodes-in-k-group/
- 一个关于凸包的问题。
尽管我能够解决所有三个问题(第三个部分{约 70%} 由于超时),但即使您完成了三个问题中的两个,您也很有可能入围。另一个重要的事情是使用注释。
这一轮最常见的错误是考生未能计算并提及其解决方案的正确空间和时间复杂度。请记住在代码末尾提及这一点,并解释您如何计算它。
第一轮(技术面试):面试官很友好,很冷静。本轮旨在检验你是否真的有一些DSA的基础知识和CS的基础学科。在介绍和一些一般性对话之后,我被要求实现两个代码-
- 计算差异为 k 的不同对
- 最长子串的长度
然后我被问到一些基本的主观问题,比如键、连接、ACID 属性、OSI 模型、调度算法、同步、抖动、OOP 等。
第二轮(技术面试):这一轮很难。面试官又是一个很酷很友好的人。我只被问到一个问题。问题是来自 Leetcode 的 LRU Cache 的实现。 (https://leetcode.com/problems/lru-cache/)。
我为此苦苦挣扎。我无法编写完美的工作代码,但我一直在努力,并且能够向面试官解释我的方法。 HashedIn 最好的事情是他们不希望您编写完美的代码。相反,他们对您的方法以及您计划如何实施它感兴趣。
注意:如果面试官还没有留下深刻印象并想再给你一次机会,也可能有 3 个左右。
招聘轮:这轮只是一次随意的谈话,比其他人力资源面试友好得多。我被问到一些一般性的问题,比如——
- 为什么是HashedIn?
- 我们为什么应该录用你?
- 你的 3 个优点和 3 个缺点。
- 家庭背景。
- 任何参与学术活动以外的活动。
- 准备策略。
然后过了两天,结果公布了,在参加在线编码评估的215名学生中,只有5名学生(包括我)被选中。