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

相关文章