我会尽可能清楚。
我有一个事件有两次,开始和结束。(时间为 24 小时制)例如,此事件从 8 点开始,到 12 点结束。
在这个活动中,我有一份人员名单和他们的工作时间表。这是一个例子:
- 人 1 : 从 8:00 到 10:00
- 人 2 : 从 10:00 到 12:00
- 3人:从6:00到15:00
- 4人:从8:00到9:00
- 5人:从9:30到12:00
现在,我需要知道至少有多少人参加了整个活动。
就我而言,它将是2,因为:
- 第 1 人与第 2 人相辅相成
- 人 3 将永远在场
- 在 9:00 到 9:30 之间,第 4 和第 5 个人之间有喘息声,因此在此期间,第 4 和第 5 个人之间不会有人在场。
如果我用时间解释这一点:
- 从 8:00 到 9:00 : 人 1, 3, 4
- 从 9:00 到 9:30 : 人 1, 3
- 从 9:30 到 10:00 : 人 1, 3, 5
- 从 10:00 到 12:00 : 人 2, 3, 5
大多数情况下,该活动将有 3 人,但如果是 2 人,则最低。
我怎么能用算法得到这个数字,我不知道这个。
我想过以分钟为单位转换时间(我不会低于分钟),将范围设置为事件时间(从 8*60 到 12*60),并将每个人的存在添加为新范围,然后计数每分钟有多少个切片(1 个切片 = 1 人)。但我觉得这效率不高,因为我必须计算切片 4*60 分钟:/(从 8 -> 12)。
你会怎么做?