ThoughtSpot FTE+实习面试经验
第 1 轮:这是一个 90 分钟的轮次
这一轮在www.interviewbit.com上有三个编程问题以及 7 个 MCQ 类型的问题:
问题1:给定一个链表,其中数字按非降序排序。从链表中返回一个二叉搜索树。
问题 2:这是一个类似于蛇梯问题的问题。给定 Ludo 板的描述,找到到达给定目的地的最小投掷次数。
https://practice.geeksforgeeks.org/problems/snake-and-ladder-problem/0
问题 3:给定一个由 ()[]{} 组成的字符串。找出最长的平衡括号的长度。
第 2 轮:这是一个 60 分钟的回合。
这一轮又是一轮编码。我们必须编写很长整数的乘法、加法、减法和除法。解决了至少两个上述操作的人被选为第三轮。
第三轮:这是一对一的面试轮,持续了大约 75 分钟。这一轮的重点是解决问题,面试官问了三个问题:
问题1:问题描述是有一个停车场有k个停车位,并且有k辆汽车,这些停车位以及汽车的编号从1到k。还有一个可用的空闲停车位。您需要输出所需的最少移动次数,以便将相应的汽车移动到相应的插槽。
问题 2:这是一个类似于硬币找零问题的动态规划问题。您需要仅借助仅是 2 的幂的数字来形成给定的总 k。
解必须是不同的,即 {1, 2, 2} 和 {2, 2, 1} 被认为是相同的。
我给出了这个问题的递归解决方案,后来又给出了一个使用记忆的动态编程解决方案。
第4轮:持续约70分钟。这是一个项目,也是一个系统设计回合。提出的问题是设计一个版本控制系统,以尽可能高效的方式支持推送、弹出和查看当前版本号。我从数组方法转向基于堆栈的方法,然后最终转向基于 trie 的问题解决方案。面试官要求我将解决方案优化为基于 trie 的方法。他想要一个基于 trie 的有效解决方案。最后他问了我大约 5 分钟的项目。
最后,我在 ThoughtSpot 只获得了 6 个月的实习机会。 GeeksforGeeks 在准备过程中帮助了我很多。