Python 中的拼车
pythonserver side programmingprogramming
假设有一辆车最初有一定数量的空座位可供乘客使用。该车辆只向东行驶,因此我们不能掉头向西行驶。我们给出了一个行程列表 trip[i] = [num_passengers, start_location, end_location],其中包含有关第 i 次行程的信息:,即必须接送的乘客人数以及接送他们的地点。这里给出的地点是从我们车辆的初始位置向正东方向的公里数。当且仅当可以为所有给定行程接送所有乘客时,我们的模块才会返回 true。因此,如果行程为 [[2,1,5],[3,3,7]] 且容量为 5,则输出将为 true。
为了解决这个问题,我们将遵循以下步骤 −
- 创建一个名为stops的数组,大小为 1000,并用 0 填充
- for i in trips
- stops[i[1]] := stops[i[1]] + i[0]
- stops[i[2]] := stops[i[1]] – i[0]
- for i in stops −
- capacity := capacity – i
- if capacity < 0,则返回 false
- 当 capacity >= 0 时返回 true
让我们看看下面的实现,以便更好地理解 −
示例
class Solution(object): def carPooling(self, trips, capacity): stops = [0 for i in range(1001)] for i in trips: stops[i[1]]+=i[0] stops[i[2]]-=i[0] for i in stops: capacity-=i if capacity<0: return False return capacity>=0 ob = Solution() print(ob.carPooling([[2,1,5],[3,3,7]],5))
输入
[[2,1,5],[3,3,7]] 5
输出
True