程序检查我们是否可以在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

回到顶部