Python中的拼车

假设有一辆车辆最初有空座位供乘客使用。车辆仅向东行驶,因此我们无法转身向西行驶。我们给出了一个旅行列表,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