📜  亚马逊面试经历 |第 224 集

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

亚马逊面试经历 |第 224 集

以下是我的面试经历:

第一轮:技术
1) 机器人必须从 A 点移动到 B 点。机器人每次移动时,可以走 1 步或 2 步或 3 步。找出可以做到这一点的方法总数。
输入参数——A和B之间的距离
所需输出 - 方式数

必须编写涵盖所有边缘情况的无错误代码。先给出了递归解,最后想出了动态规划解

2) 实现最近最少使用的缓存。这个问题存在于极客的极客中。再次不得不编写无错误代码。

3)不记得问题。但我只需要想出一个算法。不需要代码。

第二轮:招聘经理
1) 数组包含 1 和 0。想出一个算法,使所有的都出现在右侧,而所有的零出现在左侧。您只能遍历数组一次 - 无需代码。
2) 单例设计模式的代码
3)许多行为问题,比如为什么亚马逊,你为什么离开你现在的公司,你不得不反对你的经理的情况等等。

第三轮:技术轮

1)给定一个单词列表,提出一种算法,将所有字谜分开并放置在相应的桶中。所以基本上如果 2 个字符串是彼此的字谜,那么两者都应该在同一个桶中。

我使用排序和散列来解决这个问题。不需要代码。

2) 给定字符串二进制数字(例如 010111101000),对字符串进行分区,使每个段都是 5 的幂。如果可以对字符串进行分区,使得最后没有数字剩余,则返回段的总数,否则为-1。需要从 5^1 开始,直到小于字符串的 5 的最大幂。
必须为涵盖所有边缘情况的问题编写适当的代码。

3) 给定 n 个人和 n+1 个停车位。每个人都有一辆车和一个停车位。一天晚上,他们都去参加一个聚会,喝醉了。他们最终随机停车。回到初始配置的最佳方法是什么(每辆车都在正确的分配槽中)。第(N+1)个停车位可用于交换汽车。
这个问题只需要算法。

提出一个具有 nlog(n) 复杂度的排序算法。

提示:使用 Java 的比较器类来解决问题。


第 4 轮:提高酒吧

一般行为问题,例如您为当前项目做出了什么贡献,您不喜欢您的项目或想要更改的一件事等。
队列和栈的区别?
使用数组实现队列,即使经过几次入队和出队操作也不会浪费空间。
提示:想想圆形数组。

亚马逊的所有练习题!