上来寒暄了五分钟,聊聊他们组和我的简历。然后开始做题。
有两个List,分别代表两个⼈Calendar上⾯的空闲时间段。⽐如:
A = [[1, 3], [5, 7]]
B = [[2, 4], [6, 8]]
要求输出两⼈共同的空闲时间段。这题返回[[2,3], [6,7]]就好。
答:先记录下每个⼈的起始时间和结束时间,然后所有时间从左到右扫⼀遍,记录所有的“两个⼈都空闲”的时间段即可。
Follow-up 1: 如果要求共同空闲时间必须超过⼀定时间(⽐如,⼀个⼩时),怎么办?
答:加⼀个if判断即可。
Follow-up 2: 如果假设[3, 4]和[4, 5]也有共同空闲时间[4, 4](可以⻅⼀⾯),怎么办?
答:在每个时间点上,先考虑谁变得available了,处理⼀下,再考虑谁变得不available了。
Follow-up 3: 如果有20个⼈,怎么办?
答:⽤heap。
已顺利拿到onsite。只有这⼀道题,并不像传说中的必须两道题才能过。但是应该做到bug free了。