Postmates电面

google hangout聊天 coderpad做题好像

1, 计算司机活跃时间

给的List是排好序的,我说了两个方法,选择⽤totalTime - idleTime来计算,但是我忽略了一种可能就是有一个很长的delivery,过程中可能有pick up drop off交错着,但其实这种现实里应该不会出现因为一般只会pickup完了deliver,不可能deliver的过程中上次没送完的回来pickup再接着送,当时没想到这点只是觉得面试官想考察我这种情况怎么处理,我就说可以⽤一个stack来记录pickup,每次出现一个drop off就从stack里pop掉⼀个pick up,当某次是pickup⽽上次是dropoff && stack是空的时候,记录这段interval加⼊到idleTime,否则push⼀个pickup到stack里

2,商店iSOPen, 给你⼀个openhours和一个时间,返回当前商店是否open。这道题非straightforward,最麻烦的就是给的openhours⾥Friday是10:00am - 4:00 am, 但是建⽴hashmap来存时间的时候应该存的是 (10:00am- 12:00am)这种,(0am- 4am)应该放到周六里,6 -> ([0am, 4am], [10am, 12am]) 我当时用了很蠢的办法就是看某天的officehour的endtime是不是比starttime⼩,这样的话说明过夜了,就把hours改成(starttime, 1440)

聊得还行吧,就是最后做超时了,⾯试官多给了我⼗五分钟做完,但是没run test case,后来我又给他发了封邮件讲了下我做题时的一些问题,希望能给个onsite哈

第一题直接⽤一个counter来记录当前carry的packages不行么,lz看我这有啥问题么

写个pseudocode:

可以啊 我当时好tm蠢我第一反应是stack随⼝口说了一下,面试官说挺好,我以为我找到了正确的⽅方向。。。结果整的这么麻烦

如果用⾛一遍加起来的的方法,算total那⾥是不是应该在是dropoff的时候判断啊
dropoff的时候并且packagesCarrying == 0