📜  亚马逊面试经历 |第 174 组(用于 SDE)

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

亚马逊面试经历 |第 174 组(用于 SDE)

最近,我参加了钦奈亚马逊开发中心的 SDE 职位面试。以下是我的面试经历:

电话回合:
1) 给定一个长度数组,你必须为三角形选择 3 个长度(a、b 和 c),使其满足条件 a+b>c,b+c>a,a+c>b。查找可以从给定数组创建的可能三角形的数量。
例如:3 5 6 9 10
(3,9,10), (3 5 6), (5 6 10), (5 9 10), (5 6 9), (6 9 10)
所以可能的三角形数是 6

2) 计算数组中的倒数
数组的反转计数表示 - 数组距离排序多远(或接近)。如果数组已经排序,则反转计数为 0。如果数组以相反的顺序排序,则反转计数为最大值。
形式上来说,如果 a[i] > a[j] 且 i < j,则两个元素 a[i] 和 a[j] 形成一个反演示例:序列 2、4、1、3、5 有三个反演(2、 1), (4, 1), (4, 3)。
内部面试 1(F2F):

3)下一个更大的元素
给定一个数组,打印每个元素的下一个更大元素 (NGE)。元素 x 的下一个更大元素是数组中 x 右侧的第一个更大元素。对于不存在更大元素的元素,将下一个更大元素视为-1。
例子:
a) 对于任何数组,最右边的元素总是有下一个更大的元素为 -1。
b) 对于按降序排序的数组,所有元素的下一个较大元素为 -1。
c) 对于输入数组 [4, 5, 2, 25},每个元素的下一个更大的元素如下。

Element       NGE
   4      -->   5
   5      -->   25
   2      -->   25
   25     -->   -1

d) 对于输入数组 [13, 7, 6, 12},每个元素的下一个更大的元素如下。

Element        NGE
   13      -->    -1
   7       -->     12
   6       -->     12
   12     -->     -1

4)排序数组到平衡BST
给定一个排序数组。编写一个使用数组元素创建平衡二叉搜索树的函数。
例子:

Input:  Array {1, 2, 3}
Output: A Balanced BST
     2
   /  \
  1    3

Input: Array {1, 2, 3, 4}
Output: A Balanced BST
      3
    /  \
   2    4
 /
1

内部面试2(F2F):
5) 检测有向图中的循环
给定一个有向图,检查该图是否包含循环。如果给定的图形包含至少一个循环,您的函数应该返回 true,否则返回 false。例如,下图包含三个循环 0->2->0、0->1->2->0 和 3->3,因此您的函数必须返回 true。

6) 将 BST 原地转换为有序循环双向链表。

与招聘经理的电话会议:
关于我的介绍。
然后他问起我的大学项目。我们讨论了项目的面向对象设计。
然后他问我关于我现在公司的最新发明
然后他问我关于虚拟内存的问题,并对此进行了一些深入的讨论。
然后他来到我正在工作的当前项目
然后他问我你为什么从我现在的公司出来??
然后他提出了一个问题来解决。
7) 给定一个数组 A[] 和一个数字 x,检查 A[] 中的对,总和为 x
给定一个包含 n 个数字和另一个数字 x 的数组 A[],确定 S 中是否存在两个和正好为 x 的元素。
他询问了上述问题的各种可能解决方案。

杆提升轮(F2F):
8)给定一棵二叉树,求树的直径。
树的直径(有时称为宽度)是树中两片叶子之间最长路径上的节点数。

在解决了上面的一个之后,他对上面的问题添加了一个约束:(即)找到最多一圈的树的直径
树中转弯的示例:
在 tree1-> 从 1 开始,在根 2 处向右转,
在 tree2-> 从 3 开始向左转,在 1 处向右转,
在 tree3-> 从 1 开始向右转,在 3 向左转,

2                 3                 1
    / \               /                   \
   1   3             1                     3
                      \                    /
                       2                  2
亚马逊的所有练习题!