【发布时间】:2021-04-28 09:07:42
【问题描述】:
您好,我正在解决以下问题:
给定到达火车站的所有火车的到达和出发时间。找出火车站所需的最少站台数量,以便没有火车一直在等待。 考虑所有火车在同一天到达并在同一天离开。火车的到达和出发时间永远不会相同,但我们可以让一列火车的到达时间等于另一辆火车的出发时间。在任何给定的时间点,同一站台不能同时用于一列火车的出发和另一列火车的到达。在这种情况下,我们需要不同的平台,
Input: N = 6
arr = [0900 0940 0950 1100 1500 1800]
dep = [0910 1200 1120 1130 1900 2000]
Output: 3
Explanation:
Minimum 3 platforms are required to
safely arrive and depart all trains.
这是我的代码:
class Node:
def __init__(self,arrival,departure):
self.arrival = int(arrival)
self.departure = int(departure)
def minimumPlatform(n,arr,dep):
s=[Node(arr[i],dep[i]) for i in range(n)]
s = sorted(s,key=lambda x:x.departure)
currentMax=1
maxi = 1
dep = s[0].departure
for j in range(1,n):
i = s[j]
if i.arrival<=dep:
currentMax+=1
maxi = max(currentMax,maxi)
else:
currentMax=1
dep = i.departure
return maxi
我所做的是根据出发和检查图中的最大重叠数进行排序(在图中绘制到达和离开)
gfg 不接受我的回答
我的直觉是否正确?
【问题讨论】:
-
如果您需要代码方面的帮助,请将其设为minimal reproducible example - 任何人都应该能够将您问题中的代码粘贴到文件中,然后无需添加任何内容运行它看到和你一样的问题。是的,您需要包括例如进口和显示问题的最少数据。你知道你的代码在 gfg 中测试的数据吗?
标签: python algorithm sorting greedy