亚马逊专访 |第 48 组(SDE-1 校内)
最近,我经历了亚马逊印度的面试经历,想和大家分享一下我的经历。
位置:SDE-1
采访次数:1 书面 + 4 PI
第 1 天:
第一轮:(书面)
20 道 MCQ 问题,包括数据结构、算法、操作系统、概率、组合和定量分析。
编码问题:
1.字符串由括号和字母组成。编写一个程序来验证所有括号。忽略字母。例如。 ((alf)ls) – 有效
)(dkk)() – 无效
2. 您参与的投注游戏规则如下:
a) 如果您赢了一轮,投注金额将添加到您的总和中,下一次投注金额为 1 美元;
b) 如果您输掉一局,投注金额将从您的总金额中扣除,下一次投注将是上一次投注的两倍。
c) 当所有回合都完成或您没有足够的金额时,游戏结束。
最初,您会得到一个“WLWWL”形式的字符串,其中 W 表示赢,L 表示输和初始总和。初始投注金额为 1 美元。
两个问题都给出了函数原型和主函数。
第二轮:(面对面)
关于我的项目的一些讨论,然后是几个问题。
1. 给定一个整数数组,找出数组中存在的所有范围。
例如。 1 6 4 2 3 — 范围为 {1-4} 和 {6}。
我使用排序来解决这个问题,所以一些后续问题是关于我在这里更喜欢哪种排序技术。
合并排序和快速排序之间有什么区别,以及快速排序何时优于合并排序等。
2. 给出两个字符串。其中之一是初始字符串,其他字符串根据其优先级包含字符。根据给定的第二个字符串对初始字符串进行排序。初始字符中的字符串可能出现在第二个字符串中,也可能不出现。如果不存在,则在输出末尾按字典顺序对它们进行排序。
例如。字符串 1 – ddloyc,字符串 2 – odl
输出——奇怪
同样,对解决此问题的各种方法进行了一些讨论。
第三轮:(面对面)
讨论我的项目。
1.(水库采样问题)https://www.geeksforgeeks.org/reservoir-sampling/
2. 生成 n 对括号的所有有效排列。 https://www.geeksforgeeks.org/print-all-combinations-of-balanced-parentheses/
3. 给定一个 bst,用所有节点的值之和大于等于当前节点的值来更新每个节点的值。
反问:我为此目的使用了全局变量,所以他让我在没有任何全局或静态变量的情况下解决它。
4. bst中一个节点的顺序后继。
5. 给定一个列表和一个数字 k,将前 k 个元素取反并保留接下来的 k 个元素。在整个列表中重复此操作。
第四轮:(面对面)
1. N 个罐子以线性方式保存。每个罐子都包含一种颜色,其值范围为 0-99。现在您可以混合任何两个相邻的具有颜色“a”和“b”(均为整数)的罐子,它将产生值 (a+b) mod 100 的新颜色,并且还会产生值 (a*b) 的烟雾)。混合所有的罐子,这样最后只剩下一个罐子,产生的总烟雾最少。
第 2 天:
第4轮:(与非常资深的人通话)
他说我一定已经通过了许多编码问题,所以他将从基础开始。
1. C 和 C++ 有什么区别?
2. 你会更喜欢哪一个,何时以及为什么?
3. C++和Java有什么区别。
4. C++ 和Java哪个更好。支持你的回答。
5. 举一个用例,C/C++ 可以用指针来解决,但是用Java做不到。
6. 再次,对我的项目进行一些讨论。我最喜欢哪个项目,为什么?在那期间我遇到了什么问题
项目以及我如何处理它们。
7. 给定一个 0 和 1 的流,其中先出现 0,然后是 1,找到第一次出现的 1。
8. 设计手机电话簿数据结构。实施它并讨论它的好处和局限性。
晚上他们宣布了结果,我被录用了!!! 🙂🙂
建议:- 编写带有缩进的简洁代码。事先提及所有测试用例(如果出现算法问题)和所有用例(如果需要设计数据结构)是一个好主意。而且,不要只回答面试官的问题,试着与他们互动。