亚马逊面试经历 |第 239 集
我最近在班加罗尔世贸中心参加了亚马逊的采访
第 1 轮 – 书面(为 3 个中的任何 2 个编写代码)
1. 给定一个先增后减的元素数组,找出数组中的最大元素。
基于我们如何处理极端情况的点,例如如果我们在数组中只有两个元素会怎样。
2. 给定字符串括号,判断表达式是否平衡?
3.给定一棵二叉树,找到具有最大节点数的层,将根视为零层
人们被要求写 2 到 3 行关于他们遵循的方法、空间和时间复杂度、用于解决问题的数据结构
我参加了 1 和 3 - 得分为 7/10,在我进一步的分析中,我未能处理有问题的极端情况。3
第 2 轮 – 面对面讨论
1.编写程序来转义URL字符串,假设给你一个URL字符串,你必须替换
“(空格)”->“%22”
“(双引号)” -> “%d”
说 http://www.google.com/hello world” -> http://www.google.com/hello%22world%5d
空间和时间复杂度是多少,我们可以仅通过一次遍历字符串来完成解决方案吗?
2. 给定二维平面中的一百万个点 (x,y) 和一个计算与原点距离的效用函数,你将如何返回与原点的最小 k 距离。
答案:使用 Comparator 并对数组进行排序,从排序列表中返回前 K 个元素
追问:为什么要保留排序列表中的所有元素,如何只保留排序列表中的k个元素?解的时间、空间复杂度。问题的时间复杂度。
第三轮——面对面讨论
3.实现自己的hash map
跟进:
1.如何处理碰撞情况
2.我们怎样才能降低rehashing过程的时间复杂度??
在这一轮中尽了最大的努力,但无法清除它。
亚马逊人在整个过程中都很友好。