当前位置: 首页 > 知识库问答 >
问题:

如何:给定酒店和访客的入住/退房时间,找到所需的最小房间数

冯曾笑
2023-03-14

假设我得到一个作为(签入,签出)传入的未排序元组列表,我需要返回所需的最小房间数,以避免冲突。到目前为止,我想:

 sort by checkout time
 room = 1 
 for each checkout time
    if there exists checkout time < checkin 
        room += 1
    end if 
 end for
 return room

排序需要nlogn运行时间(n),这相当于O(nlgn),我能做得更好吗?我想我可能有我没有处理过的角落案件,但我想不出有什么。

这是一个面试问题。有什么帮助吗?

共有1个答案

锺离珂
2023-03-14

你的算法坏了。一个正确的方法是列出一个事件列表,然后先按时间对它们进行排序,然后在签入前结帐。现在我们如下所示:

max_rooms = 0
rooms = 0
for each event
    if event.type == checkin
        rooms += 1
        if max_rooms < rooms
            max_rooms = rooms
        end if
    else
        rooms -= 1
    end if
end for
return max_rooms
 类似资料:
  • 问题内容: 我有如下所示的ind Mysql可用性表: 每个房间的每个可用日期都有一行。可能存在间隙,例如,房间1可能有8月1,2,3,5,6,13,14,15的条目,隔天不可用。 我需要查询以找到room_ids列表,其中在日期范围内每天都有可用的空间。 换句话说,获取room_id列表,其中在开始日期和结束日期之间的每个日期都有每个房间的条目。 问题答案: 您想要这样的东西: 该子句将计算该时

  • 我在Delphi2010(TADOQuery)中使用ADO数据库。 目的是找到可用的房间,并显示一家小旅馆的房间价格。 房间(_R) t_typeroom t_trans 目前,我使用下面的查询来显示房间价格。 并设法显示:(在Delphi2010的ADOQuery1和DBGrid1中) 我想做的是如何显示t_trans内尚未预订或未签入的代码室?(具体日期) 也许像这样(使用运算符): 问题是如

  • 我看过很多类似的问题,但还没能让它为我所用。我正在创建一个酒店预订系统,我希望列出在请求的预订日期至少有一个房间可用的酒店。 这是我到目前为止提出的问题 我是MySQL的新手,这真的失控了。这个想法是计算酒店的房间总数,减去给定日期范围内预订的房间总数。我能得到一些帮助吗? 子查询 它自己就能很好地工作,但这个不行。

  • 问题内容: 我有一个酒店预订系统的查询,当有特定房间时,我需要查找日期。(这是一家精品酒店,人们在其中预订特定的房间,因此在获得此代码之前,他们知道他们想要的确切房间。 我要查找的结果是一个房间的详细信息,我在查询中指定了一个房间-我是不查找多个房间的信息。 ) “可用性”表模式很简单,每一行是: 因此,例如,如果某个房间在1月1日至1月5日期间被占用,则将五行添加到可用性表中,每一天占据该房间。

  • 您好,我是新来的编码和创建一个基于文本的游戏在python中。我正在写代码从一个房间搬到另一个房间。我需要一些人帮我清理目前为止所做的事情。我运行了一个即时反馈程序,得到了以下提示,但不确定如何纠正: 大厅字符串是主字典中的一个关键字。修改代码,使其不是主字典中的关键字。 它说它不能分类我的代码(不确定那是什么意思) 将多个打印命令合并到一个函数中 使用非复杂条件使条件更简单 更好地练习在True

  • 我在房间使用关系中添加了一对多关系。我引用这篇文章是为了编写以下房间关系代码。 这篇文章讲述了如何从数据库中读取值,但将实体存储到数据库中会导致用户ID为空,这意味着这两个表之间没有关系。 我不确定在具有用户ID值的情况下,将用户和宠物列表插入数据库的理想方法是什么。 1)用户实体: 2) 宠物实体: 3)用户带宠物POJO: 现在,为了从DB中获取记录,我们使用以下DAO: 编辑 我已创建此问题