📜  SDE-2 的 Rivigo 面试体验

📅  最后修改于: 2022-05-13 01:58:24.352000             🧑  作者: Mango

SDE-2 的 Rivigo 面试体验

第 1 轮(面试官 = SDE2):这一轮完全是 DSA。我被问到 4 个编码问题。

我记得的两个编码问题:

Que1:给定一个仅包含 0 或 1 的数组。找到具有相同数量的零和一的最大子数组?

解决方案:我首先尝试使用暴力方法 O(n^2) 通过对每个索引进行 n 次迭代来解决,但后来使用累积和方法得到最佳解决方案,其中第一步是将数组更改为累积和数组,对于元素 =0 递减总和1 并且对于元素 =1 将总和增加 1。现在在更新的数组中,具有相同元素的开始和结束的子数组将对应于相等数量的零和一。现在我们必须通过迭代找到每个索引 i 的最大子数组。

Que2:在字符串中找到最大回文数?

解决方案:对于我假设它在回文中的每个索引,现在找到最左边的索引 i 和最右边的索引 j,其中 a[i] == a[j]。

这在 O(n*2) 中有效。

第 2 轮(面试官 = 首席工程师):这一轮是系统设计。我收到了 1 个问题,要求用任何语言实现。

问:用Java实现容量为 c 的 LRU 缓存?

解决方案:我使用了 HashMap 和双向链表,它支持 O(1) 中的 get(key)、put(key,value) 操作,如果元素数量超过容量 c,则总是从列表中删除最近最少使用的数据。

第三轮(面试官=工程经理):这一轮是API设计

Que:我在构建上传/审核账单系统时遇到了问题。被要求写任何一个API

第4轮:(面试官=VP):这一轮是非技术轮。

Que1:说说我自己

Que2:为什么要加入Rivigo

Que3:迄今为止我研究过的最具挑战性的问题

第五轮:(面试官=联合创始人):这一轮也是非技术轮。正常讨论我在以前的公司工作的深度以及我是否符合这家公司的标准。