头图

我于11月底通过转介申请了为期6个月的实习。我认为如果你通过转介提出申请, 则只需1-2天即可从HR处获得回复, 但是2-3天后, 当没有人联系我时, 我认为我不会再收到他们的回音。但是两周后, 我收到了有关在线编码回合的邮件。

第一轮:在线编码

有2个编码问题和28个MCQ。

  1. 中缀到后缀的转换
  2. 非常简单的字符串操作问题

我能够解决两个问题。

两天后, 他们告诉了我有关现场面试的信息, 我不得不去亚马逊班加罗尔办公室。

面试那天, 我去了办公室。还有大约70-80个学生。

第二轮:技术面试

这是60分钟的时间, 并询问了2个编码问题。我完全解决了一部分问题。我的面试官很酷而且很友善。尽管他没有笑很多, 但他让我感到我们在讨论这个问题。他从常见的关于你问题开始, 然后直接跳到编码问题。

Q1。你在地面楼梯上, 必须要到达"第N个"楼梯。在任何楼梯上, 你最多只能执行" K"步。查找可以到达第N个楼梯的总数。

int countWays(int N, int K)

他向我解释了这个问题, 然后通过一个样本测试用例对其进行了解释。然后请我先解释一下这种方法, 如果他对这种方法感到满意, 那么只有我才能编写代码。他告诉我, 他还将在笔记本电脑上记下来。

首先, 我给了他递归暴力解决方案(因为这就是CTCI所说的)。然后他让我优化它。然后, 我给了他时间复杂度为O(N * K)和空间复杂度为O(N)的DP方法。然后他要求我进一步优化它。我使用了另一个变量来存储最后K个楼梯的总和, 并为第i个楼梯增加其值, 为第(i-k)个楼梯减少其值。现在我的时间复杂度为O(N), 空间复杂度为O(N)。我以为现在可以编码了, 但是他再次要求我优化空间。然后我给了他O(K)空间队列解决方案。现在他对这种方法感到满意, 并要求我对其进行编码。他再次向我解释了编写代码时的期望。 (可读, 模块化, 缩进, 有意义的变量名)。然后我编写了代码, 他检查了一下并感到满意。

Q2。带有交换的最小字符串– https://leetcode.com/problems...

我很难提出强力解决方案, 我告诉他。然后他给了我一些提示, 在他的帮助下, 我想出了一个强力解决方案。之后, 我们进行了一些讨论, 即蛮力解决方案是否将始终提供正确的解决方案。在那之后, 他让我优化它, 我正在尝试, 但是他告诉我时间到了, 如果我有任何问题。我只是问过他实习生的角色以及哪个团队正在招聘实习生。

15分钟后, 他们告诉我我要进行下一轮比赛。

第二轮:技术面试

同样是60分钟, 询问了3个编码问题。首先, 他请我做一个简短的介绍。然后他问我有关我的实习和项目的情况。然后他告诉了我他对本轮比赛的期望。他告诉我, 他会根据时间询问2-3个问题, 我需要先向他解释逻辑, 然后再进行编码。另外, 请遵循良好的编码习惯。他告诉我说, 我将不能覆盖编写代码, 并且他将在计算机上编写确切的代码(不确定他是否确实做到了, 但是他正在笔记本电脑上打字)。

Q1。困雨水问题

首先, 给他蛮力解O(N ^ 2)。他告诉我对其进行优化。然后给了他leftMax和rightMax数组方法。他说我现在可以编码。在编写代码时, 我确保保持整洁, 使用描述性变量名尽可能使其模块化。他查看了我的代码, 问了我几个问题, 然后转到第二个问题。

Q2。

既然我已经回答了这个问题, 我告诉他我只需要在数组中找到LIS。他告诉我我该怎么做。我给他O(N ^ 2)方法。他说可以, 请我编码。

Q3。这是一个简单的问题。他问我那里有一块土地, 里面有一个湖。我需要找到湖的大小。我告诉他我可以用1表示土地, 用0表示水, 然后在遇到任何0时使用DFS。然后他问有关DFS的问题以及我将如何做。我向他解释了我的方法, 然后他要求我为此编写伪代码。

然后他问我是否有任何问题。我问他一些问题。

然后大约20分钟后, HR打电话给他并向我表示祝贺。

面试建议

  1. 无论剩下多少时间, 请确保你的代码遵循良好的做法。我记得有段时间我以为我会很快写代码, 然后向他解释代码, 但是那样行不通。他们会将论文保留在你编写代码的位置, 然后在对你有任何疑问的情况下对其进行复查。因此, 请确保你写的内容是可以理解的。你的代码, 逻辑, 图表, 测试用例。
  2. 确保你正在讨论而不是面试。确保以一种讨论的方式来解释你的方法和对他/她的问题的答案。怎么样?解释诸如你知道的事情, 而不仅仅是猜测, 解释为什么你在考虑递归解决方案。
  3. 始终在互联网上查找问题的答案。下一位面试官可能会问你。

更多面试相关内容请参考:lsbin - IT开发技术https://www.lsbin.com/

参考更多面试题相关内容:


一盏木人
9 声望0 粉丝