维森面试经历 |在校园
第 1 轮:编码测试(约 300 名参与者)
编码测试由 5 个 MCQ 和 3 个编码问题组成,总时长为两个小时。
MCQ 主要与查找给定代码片段的时间复杂度有关
编码回合如下:
- 给定一个数组,表示一组单位厚度的一系列墙的高度。当它们之间的墙壁被破坏并充满水时,找到能够在它们之间容纳最大量水的墙壁。 (50 分)
提示:前后 2 个迭代器。 - 给定一个大小为 NxN 的矩阵和一个整数 K。找到每个子矩阵的所有元素的最小总和,前提是能够将矩阵中任何元素的值最多减少 K 次。 (50 分)
- 给定 URL 列表形式的特定用户的搜索历史,根据访问次数最多找到他们各自的排名。如果两个网站的访问时间相同,则按字典顺序对它们进行排名。 (20 分)
提示:使用哈希图,键为 URL,值为访问次数。
第 2 轮:技术面试(入围 32 名学生)
他简要地询问了我的兴趣、经验和项目。之后这一轮主要是算法和数据结构。
- 对给定的 1 和 0 数组进行排序。
- 查找给定树的顶视图。
- 查找总和等于给定值的子数组。
- 仅由正整数组成的数组。
- 数组也由负整数组成
- 列出使用 LRU 交换算法构建页表时使用的所有数据结构。
- 打印一棵树的锯齿形顺序遍历。
第三轮:技术面试(约15名学生入围)
- 编写一个可运行的代码来构造一个给定有序和后序遍历的树。
- 编写一个给定锯齿形顺序和后序构造树的可运行代码。
- 使上述代码更加健壮(处理极端情况)。
- 后来他简单地询问了我的项目和出版物。
第四轮:“导演轮” (5-6名学生入围)
这一轮是由两位董事中的一位进行的。协调员建议我在面对他时要更有信心。这一轮以简短的介绍开始,然后对我的项目和出版物进行了广泛的研究。
我们偏离了讨论行业内过度使用 ML 的问题。我错误地认为 ML 的应用已经在行业内被过度使用。
他要求提供对我将用于训练模型的方法的见解,该模型将使用机器学习检测银行交易中的异常值。
我建议基于经济阶层进行聚类并应用分类器,前提是我们可以为每个阶层刮取/收集有效参数。
他通过询问操作系统和编译器设计的概念,包括线程、页表以及各种类型的变量在进程中的存储位置,进一步深入到了技术方面。
编码问题:
- 给定一个整数半径 R 和中心在原点的圆。在不使用浮点运算的情况下查找圆周上的所有整数坐标。
提示:找到毕达哥拉斯三元组 X^2+Y^2=R^2,同时记住 X 和 Y 的值)
第5轮:人力资源轮
典型的人力资源问题。