亚马逊面试经历 |设置 173(校内)
最近,我参加了 SDE 职位的 Oncampus Amazon 面试,这是我的经验。
第 1 轮:1.30 小时在线笔试
它有 20 个关于 C/C++ 的 MCQ 问题和 2 个编码问题。编码问题是:
Q1。给你一个字符串,表示数字和操作数的表达式。例如。 1+2*3,1-2+4。您需要评估字符串或表达式。没有 BODMAS 遵循。如果表达式的语法不正确,则返回 -1。
测试用例 :
a) 1+2*3 将被评估为 9。
b) 4-2+6*3 将被评估为 24。
c) 1++2 将被评估为 -1(INVALID)。
此外,在字符串中可能会出现空格。对于这种情况,我们需要忽略空格。像:- 1*2 -1 等于 1。
Q2。你得到一个负整数和正整数的数组。您需要重新排列数组,使正数和负数交替出现。此外,顺序应该与前面的数组相同,只能使用 O(1) 辅助空间和时间复杂度 O(n)。
例如。 -2 3 4 5 -1 -6 7 9 1
结果 - 3 -2 4 -1 5 -6 7 9 1。
第 2 轮:
Q1。给定一个链表,如果是回文则打印 yes,否则打印 no。
Q2。以螺旋形式打印二叉树的层序遍历。
第三轮(F2F):
关于项目的讨论。
关于 DBMS、操作系统的一些问题。
Q1:所有大小为 k 的子数组的最大值(预期时间复杂度 O(N)。
输入 :
arr[] = {1, 2, 3, 1, 4, 5, 2, 3, 6}
k = 3
输出 :
3 3 4 5 5 5 6
Q2:给定两个大小为 n 的排序数组。在这两个数组中找到第 K 个最大的元素(Expected Time Complexity Log(n))
第四轮(F2F)
关于项目的详细讨论
Q1.website 有几个网页。还有很多用户正在访问该网站。
假设用户 1 具有访问模式:x->y->z->a->b->c->d->e->f
用户 2 具有访问模式:z->a->b->c->d
用户 3 具有访问模式:y->z->a->b->c->d
用户 4 具有访问模式:a->b->c->d
对于许多有限且编号的用户,列表还在继续。
现在的问题是我们必须确定前 3 个最常出现的 k-Page-sequence。
对于上面的示例结果将是:(k=3) a->b->c,b->c->d,z->a->b。
Q2:给定两个数组,一个大小为 m+n,包含 m 个元素,其他位置为空,第二个数组大小为 n,包含 n 个元素。两个数组都已排序,现在将第二个数组合并到第一个数组,使得结果数组已排序。预期时间复杂度(m+n)。
我要感谢 geeksforgeeks 提供这样一个学习算法和数据结构的平台……🙂🙂