Luokat: Kaikki - 时间 - 任务

jonka 旭 王 15 vuotta sitten

622

秘书领任务

秘书领任务

秘书领任务

考虑返回任务为空的判断

即DeadLine=DateTime.MinValue

返回任务的几种情况

最初想法错了,后面的分析也就错了。

在处理返回任务的时候不应该考虑秘书的空闲时间,只考虑返回哪个任务就好了。

所以将返回结果变为数组,如果组内任务时间短直接返回,如果组外任务时间短将组内组外任务一起返回。

之所以如果是因为秘书的空闲时间可能

组外任务时间<秘书时间<组内任务时间。

组外任务
组内任务>组外任务

返回两个

都大于60
都小于60
组内大于60,组外小于60
组内任务<=组外任务

直接返回

两个任务
组内任务
大于组外时间

一小时外

一小时内

大于空闲时间

小于空闲时间

小于组外时间

秘书时间30分

组外任务20
组内任务40

领取顺序

有结束时间的任务直接查询

有开始时间的任务查询已经开始的并且开始时间+时长得出的结束时间

4非本组一小时外的Top1
3本组一小时外的Top1
2非本组一小时内的Top1
1本组一小时内的Top1

思路

领取任务
无符合任务
成功
查询秘书 空闲时间
查询秘书 秘书组

秘书状态

有任务
有结束时间的任务

可以领取任务相对开始时间前能完成的任务

有开始时间的任务

可能领取不开始时间能够完成的任务

无任务
直接领取