Alexa面经整理含最新OA

Alexa

整理了一些关于Alexa的面经,有时间的话会持续跟新。

OA

两道题都是题库里的题,面的alexa组。

  1. k nearest point,背景是一个城市有N个牛排馆,牛排馆的坐标都是存在allocations的list里面(类型是List<List<Integer>>),然后要求返回k个最近的牛排馆给用户,用户位置在坐标(0, 0)。
    思路:先建立每个牛排馆location和它到用户位置(0, 0)的距离的关系,然后用大小为k的max heap来拿到k个最近的位置,返回类型是List<List<Integer>>。
    这题正常做法是弄一个inner class来把location和距离的关系包装一下,我不知道为啥脑子抽了用hashmap来建立对应关系,最终这题22个test cases我只过了18个,我估摸着四个test cases里有重复的location,我的hashmap把重复location滤掉了。
  1. two sum closest变形,背景是无人机送货,无人机有最大里程,然后给了两个list,分别是出发和返回的里程数,数据类型是List<List<Integer>>,list里面只有id和里程两个值,要求找出所有出发和返回里程数之和最接近无人机最大里程的pair。比如,最大里程M = 11000,forwarding = [[1, 1000],[2, 7000],[3, 12000]], retrun = [[1, 10000],[2, 9000],[3, 3000],[4, 2000]], 最接近的里程和是10000,所以结果是[[1, 2],[2, 3]].
    思路:先用两个list sort一下,因为题目里没说给的list是sort好的,然后用two pointers找到最接近的里程,接着把return list里的id和里程的关系放到hashmap里,用two sum的解法就弄出来了。这题test cases全过了

算法数据结构

  1. 给一个 array of string,是 user 的 log,每一个 string 是 id,time,求出连续三天都 出现 的 user
  2. 给一个 video dataset,graph 表示,相连的就是相似的 video。每个 video 也有 rating。求给一个 video id,找出相似的 video 里面最高 rating 的 k 个
  3. Number of Islands
  4. The Maze,就是DFS,写完了。他说你优化一下。
  5. 给一个unique int array,返回所有的可以构成一个sum target的combination。sort了一下稍微trim一下搜索范围,然后recursion dfs搞定,如果不是要具体的combination结果,只要count的话可以dp做。
  6. Add Two Numbers II两个链表求和
  7. Longest Substring Without Repeating Characters
  8. 给a list of number建BST 然后求任意两个数在tree里的距离
  9. 找一个string里所有长度为k的无重复字母的substring,这里有个坑,如果有重复要dedup
  10. 链表基本操作, 找到第k个node, 还有 intersection of linkedlist 比较简单, 注意边界条件
  11. 多重背包题目. 大意是: 有一些不同容量的盒子来装棒球, 比如6, 9, 15 然后有一个n个棒球, 求恰好装满情况下, 使用最小盒子的情况
  12. Top K Frequent Elements
  13. 一个数组里有两种颜色 排序数组使得每个颜色的排列在一起; followup 如果有三种颜色怎么办?
  14. 给一个数组表示一个游戏的board,每个index对应的数代表在这个位置可以往后走的步数,如果走到的位置对应数值为0,就fail了,如果能够走到数组的最后, 则为success。要求输出一个winning path
    ex. [1, 3, 0, 2, 1, 2] 一个wining path:0, 1, 3, 5 (index).
  15. Maximum Gap
  16. Lowest Common Ancestor of a Binary Tree 找binary tree的两个node的最小共同祖先
    先有getParent的API。没有getParent的API怎么写。时间空间复杂度。
  17. 合并两个binary tree
  18. 给一个string,和一组关键字,要求找到最短的包含所有关键字的substring,输出是长度
  19. 2 sum,3 sum 然后展开问了一下n sum,最后follow up没有写代码
    20 . 给定一个整数,求所有的Prime number.
  20. 判断是否有重复的数字;合并两个有序的列表,扩展到特别大的话(可能是扩展到了未排序的),怎么办,外部排序
  21. find first non repeating character in a word.
  22. Meeting Rooms II变体,输入是一个list of objects类似如下:
    StartTime EndTime BandwidthUse
    10:00:01 AM 10:00:28 AM 100
    10:00:06 AM 10:00:16 AM 50
    10:00:10 AM 10:00:30 AM 150
    求Peak BandwidthUse,比如上面例子就是300,在10:00:10 AM和10:00:16 AM这个Interval里,要自己定义Object表示输入。
  23. Max Stack
  24. 输入preorder和inorder的结果,重新生成树。允许递归,但要求在O(n)之内。
  25. 各大公司都经常考的题目,设计一个数据结构可以得到最新的股票价格
    例如, input 是个stream [google, 1000] [MS, 100] [Appl 180] [AMZN 1600] [MS 101]
    然后get (goog) 能拿到1000, get (ms) 能拿到101 , 再get(ms)返回 空
  26. 写一个函数 找出所有 组合使得 a^2+b^2+c^2+d^2 = k, k是input。写完之后让优化。
  27. Copy List with Random Pointer秒了,但是follow up叫我不要用hashmap, 解法看这里single linked list的iteration做法, constant space complexity O(1) and linear time complexity O(N)
  28. Search in Rotated Sorted Array
  29. Single Number
    follow up 如果输入排好序,如何优化

系统设计和OOD

  1. 设计一个delivery system,如果有单子,就要找一个 carrier。carrier 是可以 register 这个系统,这样就是有单子的时候就是候选。主要是设计怎么传参数,每个 class 都负责什么功能。
  2. 飞机场设计。跑道的schedule (飞机起飞降落) 登机口的管理(飞机停靠 时间等) 要设计数据结构,考虑尽可能最大化机场的capacity followup会问怎么提高parallelism.
  3. 设计 customer who bought this also bought的推荐系统。如何deploy。
  4. 问了怎么设计photosharing website。可以从前后端用什么框架,如何CICD,如何部署,分布式,图片存储用aws s3,load-balancer,加密之类的都可以说。
  5. 系统设计, CAP理论, 一致性hash, 设计一个爬虫爬 Amazon.com
  6. 设计一个会议室预定系统 考虑每个会议室会有一系列会议schedule 如果用户有一个新的会议request 怎么找到符合条件的会议室等 设计的时候要考虑OO
  7. 设计系统可以让用户上传exe程序然后在你的HW上跑,用户需要得到std out。
  8. 设计alexa和nest对话的接口
  9. 设计在线图书管理系统
  10. distributed message system
  11. 设计LINUX的find函数,设计加code,会一直给你附加要求。知道我写出整个library的structure确保能随时加功能后,大叔表示满意。国人小哥一直在旁边笑,我问问题的时候diss了他一下。时间到了两人离场。
  12. typeahead,然后用trie实现一个简单的
  13. 一个巨大文件里面有很多url,验证每个url是否合法
  14. 一个64bit的random generator 每次call这个function返回一个随机的数,large scale

BQ

  1. 你工作或者学习中遇到过和队友或者同事意见特别不相同的情况吗?你听他们的还是他们听你的?为什么?最后结果怎么样?
  2. 你遇到过最难解决的技术问题是什么?如果几乎没有解决方案的话你怎么做的?最后成功了吗?
  3. 你有没有过ddl前需要做重大决定,这个决定可能造成你meet ddl,也可能造成不能meet ddl?你么做的,最后结果真么样?
  4. 如果你的manager分配给特别不喜欢的活你怎么办?
  5. 如果你收到一份function specification照着做,里面很多点你不同意,你怎么和manager或者pm沟通?
  6. 如果你写的function specification被很多人喷出很多问题,你怎么办?
  7. 如果你很不同意你的manager的一些做法,你咋办?
  8. 如果你的队友或者同事有些愿意比如病了或者家庭原因,干不完他们的活,你怎么办?
  9. 如果你发现一个严重影响客户体验的bug或者问题,但这块不是你负责,你怎么办?
  10. 如果你发现一个事非常模棱两可,比如function specification你觉得不清楚,或者一段old code 1完全看不懂,你怎么办?
  11. 你做过最难的project是什么,你负责管理和分配人力吗?
  12. tell me a time you overcommit to your consumers之类的
7 Likes

补充几个

算法

  1. 给一个 video dataset,graph 表示,相连的就是相似的 video。每个 video 也有 rating。求给一个 video id,找出相似的 video 里面最高 rating 的 k 个
  2. heapify https://blog.csdn.net/u012255731/article/details/52739267
  3. vertical的traversal binary tree https://leetcode.com/problems/binary-tree-vertical-order-traversal/description/
  4. 给一个2D matrix rotate 90 degree
  5. Group Anagram的input如果是streaming怎么处理?

System Design(需求->结构->schema->scability->reliability, consistency)

  1. DVD rental(load-balnace, database)
  2. Uber after user hit the “confirm order” button, what happened backward
  3. phonebook可以存姓名+电话
  4. 订餐系统
  5. 国际象棋游戏,最近好高频啊!!!没玩过的不知道规则直接凉透了啊!列举出主要的interface,比如move,isGameEnded, getWinner, updateGameState, etc. 实现其中的主要功能,updateGameState
  6. 系统设计一个producer和subscriber的系统,producer可以publish message到一个topic,这个topic的subscriber会可以接收到这些message并处理它。主要是要讲一下系统里面的各个组成模块以及各个模块之间的interface (RESTful api),再有就是storage的design,和operational support (monitoring等
  7. amazon locker系统,实现一个算法帮助邮递员找到最优的available lockers来投递包裹(因为包裹有不同的尺寸,locker也有不同的尺寸,算法必须能够让尽可能多的package能够被投递到locker)

答案可以参考

但是有一个问题就是stream的应用场景应该是进来一个数据,return一次。如果用stream(str).filter.collect这种是不是就是等于还是拿到了本地进行处理。并没有什么区别,很奇怪。

JAVA的stream和上面说的streaming(意思数据很多)不是一回事吧

谢谢分享,请问楼主,OA第二题的复杂度是多少啊?

看你怎么做的把,你可以看下这个,不清楚你用的什么方法,我没怎么优化

楼主,oa 就两道题吗?其他算法题都是onsite 的题目还是oa 也出过?谢谢!

OA就是这2道,但是这是社招的OA,校招OA应该就是小土刀的题目。
https://wdxtub.com/interview/14520850399861.html
帖子里其他算法是onsite面经。

哦哦,多谢!

OA2 第2题可以用二分查找吗 ??

可以的

请问一下BQ是啥?新人不太懂缩写

请问社招和校招区别大吗?
我看小土刀刀链接里OA2还有debugging?

behavior question

题目不一样

原来如此,多谢老哥

请问校招的题是啥样的啊?会更简单?也是出一个类似实际的应用题然后让你写个算法的?

看情况,基本都是小土刀原题。2轮OA过加一个视频面试。

请问第一题有什么思路吗?目前只想到暴力