第 1 轮:这是在 codility 平台上进行的在线编码测试。
- 它有两个问题。
- 一个问题来自字符串,一个问题来自贪婪。
第二轮: 48 名学生入围了面对面的面试。所有的回合主要是基于 DSA。问的问题:
- 将 LinkedList 分成 k 个段,并以相反的顺序打印这些段。首先我给了他蛮力方法,然后他告诉我优化代码的空间复杂度,最后编写解决方案。他还让我在几个测试用例上试运行。例如:1-2-3-4 k=2 输出:3-4-1-2
第 3 轮: 2 小时后,我被要求参加下一轮。面试官给了我一个问题:
- 有n个城市,这对城市之间有道路。查找两个给定城市之间是否存在路径。这是一个简单的基于图形的问题,我只需要找出源和目标是否位于同一组件中即可。他对我的解决方案很满意,并要求我编写代码。然后他扩展了问题并告诉我找到路径(如果存在)并要求对几个测试用例进行试运行。
第 4 轮: 3 小时后,我被要求进入最后一轮。
- 采访开始时对我的项目进行了简短的讨论。
- 然后他给了我一个问题,在 xy 平面中有两个矩形,它们具有给定的尺寸和一个顶点的坐标,如果有重叠,您必须找到重叠矩形的尺寸,我必须解释所有条件何时会出现部分重叠,完全重叠,不重叠,最后编码出解决方案。
我的建议
- 了解每个 DS 实现的基础知识、复杂性等。
- 从蛮力开始,然后构建最佳解决方案。
- 练习编写整个程序,而不仅仅是函数。
- 继续与面试官互动。大声思考。
- 在你的简历上有一些好的项目。