def diaodu(time,m):
"""将各个任务分配到m台机器上,任务花费时间列表已汇总至time中,返回分配后的最小时间"""
tmp=[0 for _ in range(m)] #初始化每个机器上花费的时间为0
if len(time)<=m:
#如果任务数小于等于机器数,就每个任务分配一个机器,返回其耗费最大时间的机器即为最大时间
return max(time)
else:
#任务数大于机器数
#先将最大耗时任务依次分配给机器
time.sort(reverse=True)
print(time)
tmp[:m]=time[:m] #先分配前m个任务,后m个任务为time[m:]
for t in time[m:]:#对剩下的每个任务耗时t
min_index=tmp.index(min(tmp)) #找到tmp时长最小的索引,将t加入此机器
tmp[min_index]+=t
return max(tmp) #返回耗时最长的机器的时间
time=[30,26,10,35]
m=3
print("总耗时:",diaodu(time,m))
浙公网安备 33010602011771号