凝聚力新鲜面试经验
采访是在缩放上进行的,代码信号用于为给定的问题编写工作代码。
第一轮:这一轮提出了三个编程问题(难度递增):
- 一个非常大的字符串中的第一个非重复字符,只有一次遍历字符串。
- https://www.geeksforgeeks.org/sliding-window-maximum-maximum-of-all-subarrays-of-size-k/。在这个问题中,预计会有一个 O(n) 的解决方案。
- 给出了一个单词词典。任何词如果属于字典,则称为有效词。给出了一个字符串。您需要找到字符串的所有分区,以便每个分区都是有效的单词。例如。让给定的字典是 { 人,冰,奶油。 go, icecream, mango } 和给你的字符串是 mangoicecream,那么所有有效的故障都是:
- 芒果雪糕
- 芒果雪糕
- 芒果雪糕
- 芒果雪糕
第 2 轮:采访从讨论我使用多线程的一个项目开始。其他各种问题,例如线程和进程之间的区别,应该使用它们中的每一个的场景,以及Python特定的线程问题(我的项目在Python中)。在此之后问了两个编程问题
- https://www.geeksforgeeks.org/maximum-profit-by-buying-and- sell-a-share-at-most-twice/
- 您将获得一个大小为 100 GB 的文件,其中包含无符号 64 位整数。您必须编写一个程序来对这些整数进行排序并将其复制到不同的文件中。但是,可用的 RAM 只有 2 GB。我讲述了一种基于合并 k 个排序数组和使用中间文件的方法。面试官对这种方法很满意。
第 3 轮:本次采访是与一位拥有大约 20 多项专利的董事进行的。所以一开始我有点紧张。面试官给出了一个 C 代码,我被要求预测它的输出。我搞砸了,给出了错误的答案。然后面试官告诉我编译并运行程序来检查输出,我意识到我犯了一个错误。面试官要求我找出我的错误并纠正它。幸运的是我做到了。之后给出了以下编程问题:
- 给定一个仅包含 B 和 W(黑白球)的字符串,您需要将所有白球带到字符串的开头。例如,如果字符串是“BWWB”,则输出应该是“WWBB”。唯一允许的操作是交换元素。您不能覆盖任何字符。此外,预期时间复杂度为 O(n),预期空间复杂度为 O(1)。我给出了一个基于两个指针的方法。我被要求编写解决方案并为此生成测试用例。
第四轮:本次面试完全基于操作系统。我被要求设计一个数据结构来存储有关流程的信息。我被要求解释我在数据结构中考虑的每一件事,甚至是我使用的数据类型。询问了爆发时间、等待时间等相关问题。面试官还想知道如何计算爆发时间。 (您无法计算进程的突发时间。我们研究调度中的突发时间只是为了进行基准测试)。
一周后拿到offer!