📜  亚马逊面试经历|第 393 集(在校实习)

📅  最后修改于: 2021-11-17 09:57:24             🧑  作者: Mango

在线编码回合:-
有 2 个编码问题和 20 个 MCQ。

  1. 给定一个数组,找出元素总和小于给定数字 k 的所有三元组。
    GeeksforGeeks 链接
  2. 找到第 N 个幻数。

第一轮面试(面对面):-
面试官非常友好。他翻阅了我的简历,问我是否有任何项目。我回答没有,并告诉他我目前在做一个项目,后来我给了他一个简短的解释。对于那些没有做过任何项目的人不要太担心。
他问了我2个问题

  1. 生成所有可能的子集(子集迭代)。
    GeeksforGeeks 链接
  2. 对网格上的 BFS 稍作修改。我告诉他我的方法,他很满意。

在我告诉我解决第二个问题的方法后,他告诉我在图表中为 BFS 编写一个伪代码。
他是我迄今为止遇到的最好的面试官。
面试持续了大约 45 分钟。
其他人被问到了类似的问题

  1. 链表中的中间元素。
    GeeksforGeeks 链接
  2. 双链表中的归并排序。
    GeeksforGeeks 链接
  3. 合并两个排序数组。
    GeeksforGeeks 链接
  4. 给定一棵二叉树,对于每个叶节点,打印从根节点到叶节点的值的总和。
    GeeksforGeeks 链接
  5. 快速排序
    GeeksforGeeks 链接
  6. 二叉树和二叉搜索树中的 LCA。
    • 二叉搜索树中的 LCA
    • 二叉树中的LCA

第二轮面试(面对面):-
这个面试官也很友好。他对编码也有很好的了解。他问我上一轮怎么样,我回答说顺利。后来他问我上一轮问了我什么问题。我告诉他上一轮我被问到的问题,并解释了他们的解决方案。
他问了我2个问题。

  1. 按螺旋顺序打印二叉树。
    GeeksforGeeks 链接
  2. lli 在这个问题中代表 long long int 。
    他以函数的形式给了我一个问题。问题来了。
CPP
// a1(size1) and a2(size2) are arrays and you
  // have to append them.
  lli* Append(lli* a1,lli* a2,lli size1,lli size2)
  {
       
  }


CPP
lli* Append(lli* a1,lli* a2,lli size1,lli size2)
  {
      lli a[size1+size2],i;
       
      for(i=0;i


简单但错误的解决方案

CPP

lli* Append(lli* a1,lli* a2,lli size1,lli size2)
  {
      lli a[size1+size2],i;
       
      for(i=0;i

我告诉他上面的代码实际上失败了。他问我为什么失败。我是这样回答他的。数组 a 实际上在函数Append 中,一旦离开该函数,该数组的作用域就结束了。他当时问我怎么做。我不知道。后来他告诉我,我们必须使用malloc为数组分配内存。后来,他向我解释了使用堆内存是如何工作的。

亚马逊的所有练习题