在我过去的一次采访中,我被要求描述如何模拟一个有桌子和椅子的餐厅,以及如何在客人到达时分配给他们以及之前预订的餐厅。
例如,当一组20个人进来时,你必须将这些表连接成一个组,使它们成为一个组。
当我试图使用简单的面向对象设计术语建模时,他阻止了我,问我有没有什么具体的数据结构或算法可以用来解决这个问题。
我不知道有什么吗?有谁能给我指点一下吗?
发布于 2011-11-17 10:43:37
我想不出任何特定的算法,我的意思是,也许这只是一个看你如何思考的问题,而不是一个有特别合适的解决方案的问题。
在我看来,在任何情况下,表的物理分布都是至关重要的:您只能连接彼此接近的表。通常,您不能将坐着的人移到不同的桌子上,也不能在餐厅中将桌子拖得很远。这就需要一种数据结构来模型表的物理分布,即具有连接节点的网络。这可以是复杂的,所有你想要的,例如,桌子之间的距离,用走廊划分网络,等等。
要查找空闲表,或者获取或释放空闲表,因为典型的表数很少,您只需按顺序迭代即可。作为一种更学术的练习,你可能想要想出更适合这个问题的方法,但没有足够的要求来做出决定。
https://stackoverflow.com/questions/8010617
复制相似问题