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哈