亚马逊面试经历 |第 299 集
在线轮次(1小时30分钟)
20 个 MCQ + 2 个编码问题-
1)你已经给了两个stings。你必须编写函数来检查天气第二个字符串的任何字谜是否是第一个字符串的子字符串。
2) 你已经给出了一个包含+、-、*、/ 的数学字符串,其形式为空格分隔(“”)。你必须编写一个函数来解决这个表达式和表达式的返回值。
MCQ 问题主要基于数据结构(树、链接列表、数组),2 个来自数据库的问题和一些来自基本概念的问题(例如给出给定程序的输出)。关于能力的 2 或 3 个问题。
技术第一轮(近 50 分钟)F2F
1)给定两个非常大的整数并计算给定整数的总和,而不使用Java中的 BigInt 库。
我通过以字符串形式获取输入数字并从右到左遍历两个字符串并从右到左一个接一个地添加整数来做到这一点。
2)给定两个数组和一个产品。您必须编写函数来打印所有对(p,q),使得 p*q=product 和 p 属于第一个数组,而 q 属于另一个。
他要求我在线性时间内完成。我使用散列来完成。
然后他问了我一些关于我的项目的问题。
第 2 轮技术(大约 60 到 70 分钟)F2F
1)给定一个数组和一个总和。您必须编写方法来检查天气中存在的数组中是否存在总和等于给定总和的任何对。
他让我在线性时间内解决。我用散列来解决。
2)他给了我一个堆栈,并要求我在 O(1) 时间内的任何时间点找到堆栈中的最小元素。
我使用另一个堆栈来完成它,该堆栈包含堆栈顶部的当前最小值。然后他让我减少程序的内存。
3)快速排序相对于归并排序的优势是什么,数组相对于链表的优势是什么。
4)他让我解释二分搜索和它的复杂性证明(O(log n))。
在我看来,选择的关键是不要不惜一切代价停止与招聘人员的互动,并忠于他/她。