亚马逊面试经历 |第 178 套(用于 SDE-1)
SDE 1 对 Amazon Bangalore 的内部采访。这是我的经验。
第1轮:
我的第一轮是 HM 轮,因为没有其他小组成员空闲。
1. 我目前的项目有很多问题。为什么我要换工作。
2. 编写一个与 MS windows 自带的一样的计算器 web 应用程序。
诀窍是根据 BODMAS 评估表达式
大量讨论使用 2 个堆栈、数组、列表、树的不同方法
有和没有后缀转换。
要求解释白板上的所有方法。
第 2 轮:
1. 将所有层级顺序节点链接成一个链表,每个层级的第一个节点作为该链表的根。
10
/ \
6 17
/ / \
4 14 19
So the Linklist will be
10->null
6->17->null
4->14->19->null
使用 2 队列给出答案。 (级别顺序横向)与备用级别的备用队列
比面试官要求在不使用任何其他数据结构(无堆栈或队列)的情况下解决问题
2. 关于行李领取代币生成的问题。
您有三个容器,小型、中型和大型。乘客进来,检查行李。您必须将行李存放在适当的容器中并生成唯一的令牌编号。然后乘客应使用相同的令牌号取回行李。诀窍是,如果小容器在可用或大的情况下完全存储在中型容器中。现在,如果大袋子进来了,现在小袋子里有一个空的空间,那就把小袋子移回小袋子,把大袋子放好。如何在不更改令牌编号的情况下生成唯一令牌编号并在内部移动行李?
查找应该是恒定的时间复杂度和最小复杂度的插入。
如果您开始解决,这看起来很容易但有点棘手,因为如果您在内部移动行李,则不应更改令牌编号,并且如果移除行李,则不应在内存中浪费空间。
第三轮:
1. 找出给定字符串中以任意顺序包含给定集合中所有字符的最小子字符串的大小。
Ex:
INPUT:
String: "abfugtabecddcca"
Character Set: a,b,c
Output: 4 ("abec")
2. 将已排序的双向链表转换为二叉搜索树(就地)
第 4 轮(提高杆轮):
1. 再次对当前项目提出很多问题。我的贡献。
我在最近的项目中遇到的最复杂的问题以及我是如何解决的。
我在大学里最喜欢的科目,以及为什么以及我从中学到了什么。
在我之前的几轮比赛中,我发现哪个问题最难,为什么?
如果我有机会更改我对上一轮提出的问题的任何答案,那将是什么问题以及为什么?
我对我的面试满意吗?
技术问题:
做一个二维矩阵的螺旋横断
Ex:
a b c d
l m n e
k p o f
j i h g
output: a b c d e f g h i j k l m n o p
Both iterative and recursive approach.
Lots of discussion on Complexity.
感谢 geeksforgeeks 提供了很棒的准备平台。