程序检查我们是否可以在Python的给定列表中接送每个乘客
假设我们有一个称为request_trips的矩阵,其中每行包含[start_x,end_x,num_passengers],并且我们还有一个容量值。现在,每次请求的行程都要求在start_x接送num_passengers的乘客,然后在end_x下车。我们也有一辆具有给定容量的汽车,从位置x = 0开始。我们要接载每位乘客,并且只能向右行驶,我们必须检查是否可以接送每个人。
因此,如果输入像跳闸= [[1、25、2],[3、4、3],[5、12、3]]的容量= 6,则输出将为True
为了解决这个问题,我们将遵循以下步骤-
事件:=一个新列表
对于旅行中的每组(sx,ex,np),请执行
在事件结束时插入对(sx,np)
在事件结束时插入对(例如,-np)
携带:= 0
对于事件列表中的每个对(loc,delta)(按排序顺序),请执行
返回False
携带:=携带+三角洲
如果承载>容量,则
返回True
让我们看下面的实现以更好地理解-
示例
class Solution:def solve(self, trips, capacity):
events = []
for sx, ex, np in trips:
events.append((sx, np))
events.append((ex, -np))
carrying = 0
for loc, delta in sorted(events):
carrying += delta
if carrying > capacity:
return False
return True
ob = Solution()
trips = [
[1, 25, 2],
[3, 4, 3],
[5, 12, 3]
]
capacity = 6
print(ob.solve(trips, capacity))
输入项
trips = [[1, 25, 2],
[3, 4, 3],
[5, 12, 3] ]
capacity = 6
输出结果
True
以上是 程序检查我们是否可以在Python的给定列表中接送每个乘客 的全部内容, 来源链接: utcz.com/z/343659.html