我有一个任务清单[[5, 9], [1, 2], [3, 4], [0, 6], [5, 7], [8, 9]]。每个子列表有两个时间间隔。(例如:[5, 9] 其中 5 是开始时间,9 是结束时间)。我想获得一个列表,该列表的最大次数彼此不重叠。在这种情况下的一个例子:[1, 2],[3, 4],[5, 7],[8, 9]是最好的时间表。
我写了一个 python 程序,如果从一个间隔开始,它应该找出其他间隔的组合。例如,如果我从 [5,9] 开始,它必须返回所有可能的组合。然后我可以一一输入所有的区间,选择最大的输出。
但是我的代码没有给出预期的输出。请帮我找出代码有什么问题。
def findMax (tasks):
maxCount = []
maxTask = []
for i in range (len (tasks)):
if maxTask == []: maxTask.append (tasks [i])
else:
count = 0
for j in range (len (maxTask)):
if tasks [i] == maxTask [j]: continue
else:
if (tasks [i][0] < maxTask [j][0] and tasks [i][1] <= maxTask [j][0]) or (tasks [i][0] >= maxTask [j][1] and tasks [i][1] > maxTask [j][0]): count += 1
if count == len (maxTask): maxTask.append (tasks [i])
maxCount.append (len (maxTask))
maxTask = []
return max (maxCount)
Smart猫小萌
qq_花开花谢_0
相关分类