如何计算完成各分类一项任务的最短时间(含不同发布时间)
问题:计算完成每个分类至少一项任务的最早完成时间
我近期参加了一场在线编程测试(OA),需要编写算法计算完成每个分类中至少一项任务的最早完成时间。每个任务具备持续时长(duration)和发布时间(release time)两个属性,任务必须按顺序执行。
输入示例
// 每个分类可包含2个以上任务,此仅为示例。 // 本次OA仅含两个分类,但理想解法应支持任意数量分类。 catOneReleaseTime = [1, 4] // 分类一中两个任务的发布时间 catOneDuration = [3, 2] // 分类一中两个任务的持续时长 catTwoReleaseTime = [5, 2] catTwoDuration = [2, 2]
问题难点与尝试解法
- 任务时间可能存在重叠,这是核心难点
- 猜测解法可能涉及动态规划或贪心算法,但不确定具体实现思路
- 考虑过对任务排序,但因存在发布时间和持续时长两个维度,不知道如何排序才能得到最优解
- 测试时使用暴力解法仅部分通过,因超时无法拿到满分
注意:该问题虽与以下LeetCode题目相似,但并不相同:
- Minimum Time to Complete All Tasks
- Find Minimum Time to Finish All Jobs
内容的提问来源于stack exchange,提问作者psygo
相关产品推荐
相关产品推荐

