#亚马逊面经 20220908
base北京 SDE,校招;一二面,时长各1h;
四个场景题,后面的answer是我回答跟面试官追问的情况,有大佬可以帮忙指导分析一下就更好了
一面:
自我介绍
硕士在南方读的,对工作地点在北京有什么想法
项目介绍,怎么优化的,考虑了哪些问题;项目为什么用redis而不是其他的缓存数据库
场景题1:平常打字输入时有“智能联想”的功能,比如输入“ap”会帮助联想出“apple”等单词。实现该功能
场景题2:像outlook跟google都有日历的功能,现给出10个人的日程安排表,如何挑选出10人的空闲时间来安排一场会议?
二面:
自我介绍+问项目
场景题3:24点游戏:给定4个在1~10范围内的数字,通过加减乘除运算还可以带小括号,找出能够凑出结果为24的所有方案,其中数字不能重复使用。(输出为数字+运算符的形式)
场景题4:对于数据库中的几千条文本形式的数据,数据中内容不定,有的带价格(比如$32),现要对带价格的数据统一进行处理(如价格增长15%)。你会考虑哪些问题?
answer1:因为要现场写代码,所以给出的是前缀树的写法,26叉树,依次按照用户输入的prefix,查找到可能提示给用户的单词。
面试官追问如果要同时提示多个单词呢?我回dfs,后追问bfs不行么,我答bfs更好并解释原因。主要写了搜索查找的代码,现在想想用链表实现比数组更好。
还答了可以设置权重热词优先显示,比如优先队列,这个可能答的偏了,说完又绕回前缀树了。
answer2:这个答的比较差,我说主要思路是标记10人已有的日程安排,再查找均空闲的时间段+会议时长判断。具体实现目前没想到最优的方式
answer3:dfs写的,但是带括号的没处理好
answer4:这个无需code只用说考虑的点,我说的是可以模糊搜索出带价格的数据再单另处理,主要是查找+修改的思路,还需根据数据量大小等实际情况判断。
面试官补充了一下,比如考虑价格符号是否都是$还有没有其他的符号、处理价格中带逗号的这种已经格式化了的数据、跑测试校验写代码是否能覆盖到所有的待修改数据、日志记录防止出错。
总结:
面试官人很nice,都会引导;针对这种场景题很难抽象出来并分析的全面,不清楚或者隐藏条件都是需要问出来的,以后多注重表达吧;寄,又凉一家。。。