今天面试一个创业公司遇到一个问题:
假设一个酒店有若干餐桌(不定数量例如 300 ),顾客可以打电话订购一个时间段的餐桌(比如 8 : 00-10 : 00 ),怎么实现这个问题,能够快速找到符合符合条件的餐桌 ID ?
我当时的回答是,如果订餐时间是离散的,比如精确到每 10 分钟这个粒度,则可以把数据存储成一个矩阵,横向是餐桌 ID ,纵向是划分的时间段。如果对应的区域比如 1 号做的 8 点 10 分被预定,则把它设为 true 。这样能根据时间区间很快找到餐桌。
但是后面面试官是时间不是离散的是连续的,我则回答直接把餐桌的被预定时间当做一个餐桌的属性存放。然后通过遍历所有餐桌来判断。
但我觉得这个实现实在是蠢,大家有什么好的想法。