今天面试一个创业公司遇到一个问题:
假设一个酒店有若干餐桌(不定数量例如 300 ),顾客可以打电话订购一个时间段的餐桌(比如 8 : 00-10 : 00 ),怎么实现这个问题,能够快速找到符合符合条件的餐桌 ID ?
我当时的回答是,如果订餐时间是离散的,比如精确到每 10 分钟这个粒度,则可以把数据存储成一个矩阵,横向是餐桌 ID ,纵向是划分的时间段。如果对应的区域比如 1 号做的 8 点 10 分被预定,则把它设为 true 。这样能根据时间区间很快找到餐桌。
但是后面面试官是时间不是离散的是连续的,我则回答直接把餐桌的被预定时间当做一个餐桌的属性存放。然后通过遍历所有餐桌来判断。
但我觉得这个实现实在是蠢,大家有什么好的想法。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.