微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

建议资源预留的最大扩展时间的算法

如何解决建议资源预留的最大扩展时间的算法

我有一个商店,用户可以在其中保留从开始时间到结束时间的资源。每个商店可以有M个资源类型的N个资源。用户可以在未来安排资源的预留。用户必须在 minBlockTime 的最短持续时间内保留资源。用户可以以 minBlockTime 的倍数延长预订。只能在资源可用之前进行扩展(直到必须将资源分配给其他人)。

现在我正在开发一个功能,建议用户可以扩展多少预订。目前我正在做一个蛮力,我尝试通过 minBlockTime 增加建议的结束时间而不是实际结束时间,并检查是否可以扩展。如果可以预订,那么我将建议的结束时间增加到下一个 minBlockTime。这一直持续到阈值扩展时间。如果无法延长,则之前建议的结束时间是用户可以延长的最大结束时间。

要检查是否可以扩展,我获取当前资源类型的资源数量获取扩展间隔(当前结束日期和新结束日期)中的所有保留,然后我检查当前类型的资源是否可以满足所有的预订。为此,我实现了一些类似于 https://www.programcreek.com/2014/05/leetcode-meeting-rooms-ii-java/

这种蛮力适用于所有场景,但性能会受到影响。如果阈值扩展时间很大,比如 7 天,而 minBlockTime 很小,比如 10 分钟,那么我需要检查是否可以扩展 1008 次,这会变得非常慢。

有人可以提出任何好的算法来实现这个建议结束时间函数吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。