📜  亚马逊专访 |第 9 组(答案)

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

亚马逊专访 |第 9 组(答案)

这篇文章是关于亚马逊面试中提出的问题的答案 |第 9 组。它包含指向 geeksforgeeks 上提供的一些解决方案的链接。我也写了我在采访中回答的答案。希望对读者有所帮助。

在线编程回合:(5种方法,2小时)

3) BST 中的第 k 个最小元素

5)最长递增子序列

电话面试一:

1)最大1s的行

2)字谜

3)旋转和删除

电话采访2:

3)找到每个其他点到 P 的距离。然后使用大小为 K 的最大堆。

面谈一:(海得拉巴,日期:2012 年 11 月 8 日)

2)我给出了以下解决方案(在面试官的帮助下):

1. 对于每个集合,找出它与之相交的集合的数量。还要维护那些设置的索引。

2. 删除具有最大交集数的集合。并更新剩余的数字。

3. 重复步骤 2,直到我们有任何集合与任何其他集合有交集。最后,我们将有解决方案。 (仍然不确定最优性)。

我们可以将解决方案与图联系起来:删除一些节点,使剩余的所有节点都是孤立节点。

搜索:为了提高搜索效率,我们可以使用每个集合的位来构建 trie 数据结构。这样我们就可以更快地找到交叉点。


面对面访谈 2(与经理):

1)我尝试了一段时间。然后面试官给了我公式。在所有情况下,数字都是 1+ceil((NW)/S)。

对于问题的第二部分,简单的解决方案是在每个窗口中找到最小值。但是我们可以优化,以便我们可以利用以前的结果/以前的最小值。

位最优:我创建了一个 W 元素的最小堆。但是堆包含数组元素的索引,而不是数组本身的值。索引根据它们在数组中的值存储在堆中。然后对于一个新窗口,线性搜索堆(堆是数组形式),用新索引替换旧索引(不再在新窗口中),并调整堆中的索引。调整所有新索引后,我们将在根处为新窗口设置新的最小值。 (不确定解决方案带来的复杂性是否值得!)

 

面谈3:

2)我给出了一个基于 trie 数据结构的解决方案,使用字符的字符串。但他建议基于字符串本身构建 trie。但是,我不能那样想。

3)线性搜索。二进制搜索。

面谈4(与开户单位经理):

2)我说,我们可以组织一个在线编码比赛。人们会注册,我们将获得详细信息。他回答说,太贵了。然后我说,我们可以推迟比赛!

祝一切顺利!

亚马逊的所有练习题!