📜  亚马逊面试经验| 333集(实习)

📅  最后修改于: 2021-04-24 19:35:21             🧑  作者: Mango

第一轮:能力测验

  1. 进行了一项能力测验,包括20个MCQ和2个编码问题。 MCQ非常简单。 MCQ基于数据结构/渐近符号/数据结构以及数量和语言能力。
    在编码部分,有一个简单的问题是基于字符串和蛮力的。
    问题是要检查一个给定字符串的子字符串是否是另一个字符串的字谜。
    Input: zamo amazon
    Output: Yes 
  2. 第二个问题是中等级别的问题,其中输入是一个表达式字符串,您必须评估给定的字符串是否有效。如果是,则返回表达式的值,否则返回-1。
    Input : 5+7*2
    Output : 19
    
    Input : 5++4
    Output : -1 

    我解决了一个完整问题和一个局部问题。

第2轮:技术面试1(大约一小时)

  1. 在Aptitude之后,他们选择了18名候选人,并宣布面试将在接下来的15分钟内开始。
    首先,他自我介绍,然后要求我进行介绍,这只是为了营造友好的环境。之后,有人问我技术问题。
    问题1:系统已为您提供了一个字母数字字符串从中提取最大数值
    Input: 100klh564abc365bg
    Output: 564 

    答:我给了他ao(n)方法,他给了我一些测试用例,并试图证明我的逻辑是错误的,有一个例子我是错误的,因为我使用了int数据类型来纠正错误,我告诉他我会改用long int。然后我问他是否可以使用字符串.h库?他说可以,然后我给了他iotn()方法。然后他叫我写代码。

  2. 问题2:为您提供了一个生成器字符串ab,可以通过在任意位置插入“ ab”来递归地生成任意数量的字符串。你已经被赋予了输入字符串来检查,如果给定的字符串是否有效。(即通过给定的字符串给出的产生。)
    eg.
    Input: aabbab
    Output: valid
    Input: abbaab
    output: Invalid 

    回答:
    首先,我给了他o(n ^ 2)方法,然后他告诉他想要o(n)方法。大约5分钟后,我给了他o(n)方法,其中涉及两个指针。然后他又告诉我,我将遍历两次输入。如果我想一次实现目标该怎么办?之后,我使用count变量给了他解决方案。 (这是PDA问题,也有一个基于堆栈的解决方案,但我没有给出该解决方案,因为那时该解决方案没有生效)
    然后他问我:“你有什么问题要问我吗?”
    我问他关于工作概况,他的项目以及他在亚马逊的经历

第三回合:技术面试2(1小时)

    在第一轮的一个小时之后,他们告诉我我被选为第二轮。就像第一轮一样,他要求我自我介绍。然后他开始问技术问题。
  1. 问题1:从双向循环链表中删除一个节点。
    答:这是一个简单的问题,所以我问他有关约束的问题,例如是否存在节点可以存在和不存在以及数据约束的条件。在听完约束之后,我编写了一个涵盖所有可能性的代码,因此我们手动检查了该代码的几个测试用例。
  2. 问题2:他观察到我有点紧张,他问我紧张的原因。我回答说,因为这是我的第一次采访,所以我感到焦虑。他问我为什么会这样,尽管很少有公司在亚马逊之前去过校园,但我猜测我必须至少有一次采访经历。
    答:我告诉他由于指针不足我没有资格,然后我告诉他为什么我的CPI低以及我擅长编码。 😛
    然后,他鼓励我,这对我来说是非常好的和积极的一面(通常,如果您表现出积极的一面,面试官会这样做的)。然后他问了几个与我的爱好有关的问题,以使我的心情焕然一新。
    回到技术方面……
  3. 问题3:给您n天的股价,找到最佳的买入和卖出日,即使利润最大化。
    回答:我告诉他我已经在Morgan Stanley Hackathon中解决了类似的问题,然后我给了他o(n2)方法,并告诉我在比赛中采用这种方法时,我收到了TLE(超过时间限制)消息,因此我对其进行了修改并找到了在比赛中获得AC(全部正确)的ao(nlogn)解决方案。然后,我解释了使用STL的o(nlogn)解决方案。他告诉我不要使用STL,并问我是否可以在o(n)中解决此问题?我回答我会尽力的。然后在10分钟后,使用dp方法成功解决了这个问题。然后,我们检查了一些测试用例。
    在问了这个问题之后,他问我是否有任何问题。从第一次采访中获得参考,我们讨论了大约10分钟的有关亚马逊当前正在进行的项目以及他在亚马逊方面的经验。
    (我认为这个问题很重要,因为这个问题反映了您对选择的信心以及您的兴趣。)
    面试的几天后,我收到一封邮件,指出我被选中参加实习,希望您也能收到类似的邮件。

如何准备实习?

  1. 数量和语言能力:
  2. indiabix.com绰绰有余。
  3. 您也可以使用RS Agrawal书籍。
  4. 技术能力:
    可以使用的任何DSA和DBMS书籍。
  5. 简化的数据结构对于DSA来说很棒而且足够了

您必须在quiz.geeksforgeeks.org上解决MCQ

编码回合:

  1. 这与MCQ完全不同。您必须编写和调试代码,因此实践对于这一轮非常重要。
  2. 要研究算法和数据结构的实现,请参考geeksforgeeks,还尝试解决有关习俗的问题。
  3. 对于标准算法,请遵循hackerearth的codemonk系列。
  4. 逻辑开发通常会花费更多时间,因此请尝试在Codechef和hackerank上进行练习。也可以尝试参加Codechef的现场比赛(每个月的Codechef长期挑战赛)。

技术面试:

  1. 在技术面试中,您应该了解众所周知的数据结构和算法。向geeksforgeeks学习,并在codechef上实现。如果您准备好编写编码,那么准备面试的机会可谓小菜一碟,而您所要拥有的就是自信。为了给编码问题留下深刻的印象,我建议您一次解决职业生涯中的问题。
  2. “破解编码面试”是有关技术面试技巧的最佳书。另外,如果您有好学的朋友圈,请尝试与朋友进行模拟面试。 (老实说,一旦开始实习程序,每个人都会变得很认真,这样您就可以轻松地进行管理。)
    最后,如果时间允许的话,我也建议在访问网站bitcoinbit.com上编码。

几点提示(特别供SY阅读):

  1. 尝试将CPI保持在8以上,否则您将错过一些机会。 CPI仅对资格重要,而CPI只是一个数字而已。因此,如果您没有不错的CPI,那么TY正在阅读此书,然后绑上鞋子进行编码(我的CPI仅为7.8)。
  2. 尝试在codechef和hackerank上编码,并尝试参加现场竞赛

祝你一切顺利! 🙂

亚马逊的所有练习题!