[亚马逊群面] 送货问题

1月11号去西雅图总部面的。1月16号星期一收到的感谢信,虽然跪了,还是写下来吧。
因为签了保密协议,又因为很多阿三会找我们的面经,所以代码和描述都是取近义,尽量给后来的同学讲明白。
新盖的楼,叫"Day 1",听说是取自CEO的一句名言。
头一天晚上去踩了个点,从住的酒店到大楼最多10分钟。
我是提前半个小时到的,看着公司的人进进出出就也就没这么紧张。

几个之后的同学问到的问题:
  • 保密协议到前台也可以签,不想自己打印的可以直接到公司签。
  • 不用存包,带着自己的包上去。
  • 手机会要求你关掉。
  • 提供早餐和午餐,食物是能量,能吃就吃。

基本是三个人一个组,在recruiter唠叨半天之后,开始进入面试正题。

第一题

每个组会得到一个问题,每个组员会拿到同一个问题的不同解决方案。小组讨论每个人的解法有什么优缺点,分析时间复杂度,然后给三个解法排个序,哪个相对来说最好,哪个相对来说最不好。(根据地里面经,一般都是 2 > 1 > 3)一共好像是15分钟。包括讨论和跟一起跟面试官交流。

我们组抽到的是【排名前M】的那道题。这道题LeetCode上有,大家都应该做过。

注意仔细审题
题目要求 只考虑时间复杂度,不考虑空间复杂度,不用优化。但是面试官会要求小组提出优化的大概方向。

三个不同的解法。

第一个是暴力,不多说。
第二个,也就是我拿到的解法, 快速选择
第三个是用 优先队列,也不用多说。

第二个解法其实是不完整的代码,缺少递归的部分。(不知道我说啥的同学,按照上面三个解法把原题做一遍就知道了,这里就不贴代码了。)

不完整的代码是肯定垫底的。

然后排序完之后,会给面试官确认。面试官一般都会问问优化的问题。注意表现出领导力,这是亚麻看重的地方(带着其他人审题,分析代码什么的)


第二题

这就是传说中的送货问题。(代码在最后,百度云,密码是:k四五六(换成阿拉伯数字即可)

Tips:在写代码中途会有一个30分钟的一对一interview。主要是讲第一小题的解法和第二小题的思路和实现所用的数据结构。自己去选择自己的时间段(一共有4个时间段可以选),我建议选择第二个时间段,当时我就选的第三个时间段,结果轮到我的时候,我基本上都写完了……
把每一道题的时间复杂度分析清楚,因为在提交代码之后还会有一轮15分钟的interview,就会让你解释每个解法的时间复杂度。

题目背景大概如下:(建议配合代码一起看,上传的是Java的版本)

公司的主要业务就是淘宝。那么淘宝就需要送货。从用户下订单到送货,有很多因素需要考虑(库存量,库存所在地,收货地区,运费等等)。
每天公司都会产生很多的订单,每一个订单对应只有一个商品(一个商品ID),而公司在全国几个大的地区都有设置仓库。仓库里有商品,每个商品有不同的ID唯一识别。另外,每个仓库都有能从自己的所在地运送到其他地区的费用和方式。


三个小题:
  1. 给定 一个商品ID 和一个 目的地,返回所有对应这个商品的库存运送花费
  2. 给定一个订单的列表,要么满足运送最多的订单,要么满足最小化迟到的订单(尽量在用户预期时间内送到)
  3. 跟第二小题一样的输入,满足平均每单运费最小。

在第二小题和第三小题中,只需要完成核心的算法代码部分,输入和输出都不用担心,并且在运行主函数的时候,会有百分比打印在console上。

我第三小题没有做,但是在第二小题里,基本把第三小题也做了,结果记得是91%的fulfill orders,30%的ontime order,$4的average shipping cost

题目本身并不难,而且也并不需要很复杂的实现,什么树,什么图都用不着,要么排序,要么用优先队列。主要考虑的是很多edge cases和优化。

  • 对于第一小题的建议是,先写暴力的方法(两个for循环嵌套),等出去一对一的时候,就可以让面试官问优化的事,然后一秒钟答上用HashMap。让面试官感觉你反应很快。
  • 对于第二小题,见仁见智,反正写出的算法合理并且复杂度不要太高就行。
  • 对于第三小题,对shippingcost排个序,然后想想优化就行了。

为什么不多说,是因为亚麻考这题就是看每个人的思路,说的细致了就给大家有了先入为主的框架,想edge case就不好想了,另外每个人的解法都不一样,如果能有用树或者图,面试官同意,在2个小时左右能够写出完整代码的话,也是可以的,反正我是没有想到……

链接:http://pan.baidu.com/s/1i48itBB
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,472评论 25 707
  • 雨,很大的雨,一滴一滴地,从天上掉下来。起先,是砸到地上,把浮土砸出一个个小坑,扑起一波灰尘,慢慢地,浮土都洇湿了...
    小兔子圆圆阅读 261评论 0 0
  • 1 在即刻上看到淡豹的一个小采访,这种长得又美,写东西又好的人真是让人... 2 吃饺子不蘸醋真是对不起醋。 3 ...
    lemarc9723阅读 713评论 0 1
  • 2015.2.15 甘阿姨叫我起床,我看看窗外,天还是黑的。 我手里握着给妈妈的信,睡觉的时候可能压倒了,纸页已经...
    不是我666666阅读 468评论 0 3
  • 每个人都是由孩子成长起来的,喜欢玩是我们从小的天性。我每曾看到孩子在那玩,而我就会放下成人的身段和他们一起玩。毕竟...
    天外之音阅读 184评论 1 1