在 3D 数组中有效操作列表的最佳方法?



我在一个 3d 数组中得到了 n 个列表。这些列表代表时间。因此,例如,这些列表之一可能是 (1,4(,这意味着 1:00、2:00、3:00、4:00 的"忙碌"。那么,对于 3d 数组中的所有 n 个列表,将 (1,4( 转换为 (1,2,3,4( 的有效方法是什么。请记住,n 可能高达 10000。我可能在这里是个白痴,但谢谢你的帮助。

///requests is the array being given. eg [(1,4),(2,9),(4,5)]
numberOfRequests=len(requests)
mostTaxi=1
talArray=[]
//Very ineffiecient way of solving current problem    
for x in range(0,numberOfRequests):
for y in range((requests[x][0]),(requests[x][1])+1):  
talArray.append(y)
//

busiestTime=max(set(talArray), key = talArray.count)
mostTaxi=talArray.count(busiestTime)
return mostTaxi

'''

如果元组表示任务(start, end)时间,您需要做的就是从每个元组中获取end - start(它将表示花费的小时数(并获取最大值。

times = [
[(1,4),(2,9),(4,5)],
[(1,4),(1,20),(4,11)]
] 
def calculate_time(t):
start, end = t
return end - start
longest = max((max(map(calculate_time, each)) for each in times))
print("The longest task took", longest , "hours")

相关内容

最新更新