MindTickle 校外面试体验
2019年2月申请linkedin,5月收到HR的电话。这基本上是一个筛选电话,她询问了我的项目、实习和我编码的语言,还讲述了公司的产品、使命、他们使用的技术堆栈等,并安排了 2-3 天后的电话采访。
第 1 轮(电话):第一轮是 DS、Algo 轮,首先简要介绍了我自己和我所做的项目。然后他问了以下问题:
- 查找数组中元素右侧的下一个最大元素。
方法:从数组末尾开始遍历数组并跟踪到目前为止找到的最大元素,在每个索引处检查到目前为止找到的最大元素是否大于当前元素,如果是则更新第 i 个索引的下一个最大元素到那个最大的元素,否则将第 i 个索引的下一个最大元素设置为 -1 - 在数组中元素的右侧找到下一个更大的元素,这是对上述问题的轻微修改,我们必须找到下一个更大的而不是下一个最大的。 https://www.geeksforgeeks.org/next-greater-element/
- 给您 n 天,并且对于每一天 (di),您可以执行高努力任务 (hi) 或低努力任务 (li),或者不执行任何任务,只有当您选择时,您才能选择高努力任务前一天没有任务。找出您在这 n 天内可以执行的最大任务量。 https://www.geeksforgeeks.org/dynamic-programming-high-effort-vs-low-effort-tasks-problem/
我能够为所有三个问题编写代码
第 2 轮(电话):这是一个编码轮,我必须编写伪代码。
问题声明:给定一个包含 n 个幻灯片(页面)的 pdf 文件和一个包含两个功能的第三方服务(rest api):
1.uploadFile(pdf):以pdf文件为输入,返回媒体id
2. getImage(media id, slide_no, format) :它需要媒体 id,我们想要其图像的 pdf 的幻灯片编号以及我们想要图像的格式,如 png、jpeg 等。
我必须编写自己的函数,该函数使用(调用)以上两个函数在服务器上上传文件并获取 pdf 中所有幻灯片的图像。
伪代码将根据以下标准进行评估:
正确性
应该涵盖所有情况
高效的
模块化的
方法:这里的问题是在获取幻灯片图像的同时使用线程,即,我们可以使用多个线程同时获取所有图像,我们不必等待提取之前的图像来调用下一个图像。
我能够想到多线程方法,并且在这一轮之后我被要求进行现场面试。
第三轮(面对面):这一轮与技术产品经理进行。他问了各种 DS、Algo 问题、谜题和有关我实习项目的问题。
- 在 (n – 1, m – 1) 处有一个 anxm 网格和一个骰子。两名玩家轮流玩,首先到达 (0, 0) 的玩家(在其轮次中骰子首先到达 (0, 0) 的玩家)将赢得游戏。在任何移动中,玩家可以将骰子水平向左或垂直向下移动。的步骤。我必须设计一种策略,让先发球员获胜,以及先发球员无法获胜的情况。这不是一个编程问题,而是一个逻辑问题。
方法:当你的对手(从第 2 轮开始的玩家)转牌时,请务必尝试将骰子放在对角线 (x, x) 位置,这样当他从对角线移动任何位置时,您始终可以在下一步移动时再次将骰子放在对角线上。通过这种方式,我们可以确保玩家 1 始终获胜,除非 (n – 1, m – 1) 本身是对角线,即 n – 1 = m – 1 或者我们可以说它是方板,因为在这种情况下,您的当骰子在对角线上时,对手会试图让你移动骰子,因为两者都处于最佳状态。这可能很难想,所以花点时间再想一想。 - 给定一个正在运行的整数流,每次出现新元素时,找到第 k 个最大的元素。 https://www.geeksforgeeks.org/kth-largest-element-in-a-stream/
- 给定两个不同长度的字符串,我必须判断它们是否相似。字符串的属性是,只要在任何索引处有下划线('_'),我们就会丢弃紧邻左侧的字符,即字符串= “A_B_CD_”,那么在去除下划线和相应字符之后的字符串将是“C”,因为“ A_”、“B_”、“D_”将被丢弃。缩减字符串后的其他示例字符串= “AB__” 将是“”,即空字符串。 “A__”是我们没有的无效字符串。的下划线大于否。字符。不能使用额外空间(不接受基于堆栈的解决方案)。
方法:从两个字符串的末尾遍历并检查下划线和其他一些条件。三思而后行,这不是一个难题。我不得不在笔记本电脑的 ide 上编写问题代码,幸运的是我能够做到。
我能够完全解决所有三个问题
第 4 轮(面对面):这一轮也是关于 DS、Algo 和一些Java相关的事情。
- 给定一个没有。 'k' 和总和 's'。我不得不说不。无限k-ary树中的路径总和为's'。每个节点包含 k 个子节点,子节点之间的边的权重为 1、2、3、...、k,即每个节点都有权重为 1、2、...k 的子节点。方法:最初我给出了回溯解决方案,但进一步我给出了优化的 DP 解决方案。
- 这是对上述问题的修改,我不得不拒绝。无限k-ary树中的路径的总和's'并且至少有一个边的值大于'm'。给定“k”、“s”和“m”。我发现这个问题很棘手,无法解决。
在上述问题中,只给出了 k 而不是树。
3.他问了一些Java相关的问题,比如自动垃圾收集,JVM是如何工作的等等。
经过所有严格的比赛,我真的很高兴成为即将到来的 MindTickler !