目录
正在加载目录...

Amazon intern OA + VO最新分享 | Amazon intern 是上岸大厂最快的方式

Amazon intern OA + VO最新分享 | Amazon intern 是上岸大厂最快的方式

亚马逊近期疯狂发OA和VO,最近整理了不少亚麻intern面试的情况,感觉一个很明显的变化是 – 题库感越来越弱了,今年intern都是组招,每个组的出题自由度都挺高。以前那种很标准的 LC style 算法题,出现的频率比想象中低很多。现在不少题目更像是基于面试官自己业务场景改编出来的题。所以刷面经的作用越来越有限,分享下刚做的 Amazon intern OA 和面试情况。

Amazon intern OA

Q1题目:给定一组 bug code,按照“出现次数从少到多排序(越少越重要)”,如果出现次数相同,则按 bug code 从小到大排序,然后输出排序后的 bug code 列表。

思路:要你把给定的数组排序,按出现次数更少的放更前面,就考你一个 map 统计每个数出现的次数,然后还有自定义排序规则而已,就先拿个 hashmap 存一下,然后 sort 的时候用 lambda 函数自定义排序规则搞一下就行了。

Q2题目:给定一组订单(每个订单包含多个 SKU),统计所有“商品对(SKU pair)”在多少个订单中同时出现,找出出现次数最多的一对;如果有多个并列,则返回字典序最小的一对。

思路:要你先统计所有的二元组,出现次数最多的那个,然后求出现次数最多的里面字典序最小的那组,就先把所给字符串都先 split 一下,再把排序后并去重后的存下来,然后再枚举所有二元组,这样的话就能保证一定每个对是字典序尽量小的,然后拿 hashmap 同时存次数,在过程中更新最优答案就行了

Amazon intern VO

第一轮 Code

题意:给定一个公司的管理层树结构,每个节点表示一个经理,其子节点是该经理的直接下属。请实现一个函数,返回所有拥有 N 个或以上下属(包括直接和间接下属)的经理。

需要确认需求:

  1. 是否需要自定义 Manager
    需要
  2. Manager 类包含什么信息
    → 可以自己设计
  3. 输入是什么
    manager tree 的 root
  4. 是否需要处理非法情况(例如树为空或存在环)
    不需要考虑
  5. N 是否可能小于 0
    N ≥ 0
  6. 返回值是什么
    List<Manager>
  7. 返回的顺序是否有要求
    没有要求

解题思路:这是一个树遍历问题。每个 manager 形成一个节点,并包含 direct reports。我们可以用 DFS 递归计算每个 manager 的 subtree size,也就是该 manager 的 direct + indirect reports 数量。如果某个 manager 的 subtree size ≥ N,就加入结果列表。整个算法只需要遍历一次树,因此时间复杂度是 O(n)。

第二轮 Code

Amazon intern VO第二轮code

题目:设计一个rate限制器, 在任意一分钟时间窗口内, 每一个服务器最多只能有10个request. 求每一个输入的request是接收还是拒绝.

解题思路:这题使用滑动窗口。对每个 client 维护一个队列保存最近 60 秒内的请求时间。每次请求到来时先删除过期请求,然后判断队列大小是否达到 limit。如果达到 limit 就拒绝请求,否则加入当前时间并允许请求,维护一个双端队列即可,思路不难。

面试体验

Amazon intern 现在的面试也越来越接近真实工作场景了:不是给你一个完全定义好的题,而是给你一个模糊问题,看你怎么把它拆清楚、设计出来 所以与其疯狂刷面经,不如多练两件事: 一是把模糊问题问清楚的能力 二是把一个现实问题抽象成数据结构 / OOD 的能力 这两点,有时候比多刷几道题更有用。

如果你也在准备 Amazon intern 或其他大厂的 OA/VO,可以直接联系 interviewAid 了解对应的面试辅助和陪跑支持。如果你想找我辅助面试,或者用 Amazon intern 面经中的原题 mock,感受最真实的feedback,欢迎戳我。

正文完