假设有一辆车辆最初有空座位供乘客使用。车辆仅向东行驶,因此我们无法转身向西行驶。我们给出了一个旅行列表,trip [i] = [num_passengers,start_location,end_location],其中包含有关第i次旅行的信息:,这就是必须上车的乘客人数以及上车地点放下 在这里,位置以距我们车辆初始位置东边的公里数给出。当且仅当在所有给定行程中可以接送所有乘客时,我们的模块才会返回true。因此,如果行程像[[2,1,5],[3,3,7]]并且容量为5,则输出为true。
为了解决这个问题,我们将遵循以下步骤-
制作一个称为停靠点的数组,其大小为1000,并用0填充
为我旅行
Stops [i [1]]:= Stops [i [1]] + i [0]
Stops [i [2]]:= Stops [i [1]] – i [0]
对于我停下来-
容量:=容量–我
如果容量<0,则返回false
当容量> = 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