Python中的公司航班预订

假设我们有n个航班,它们被标记为1到n。我们有一个航班预订列表。第i个预订表示使用预订[i] = [i,j,k],这意味着我们从标有i到j的航班预订了k个座位。找到一个长度为n的数组答案,按标签顺序显示每个航班的预订座位数。因此,如果输入类似于[[1,2,10],[2,3,20],[2,5,25]]且n = 5,则输出将为[10、55、45、25, 25]。

为了解决这个问题,我们将遵循以下步骤-

  • res:=制作一个大小为n的数组,并用0填充

  • 对于预订中的每个条目

    • res [i [0]-1]:= res [i [0]-1] + i [2]

    • 如果i [1] <n,则res [i [1]]:= res [i [1]] – i [2]

  • 当我在1到n – 1的范围内时

    • res [i]:= res [i] + res [i-1]

  • 返回资源

让我们看下面的实现以更好地理解-

示例

class Solution(object):
   def corpFlightBookings(self, bookings, n):
      res = [0 for i in range(n)]
      for i in bookings:
         res[i[0]-1]+=i[2]
         if(i[1]<n):
            res[i[1]]-=i[2]
      for i in range(1,n):
         res[i]+=res[i-1]
      return res
ob = Solution()print(ob.corpFlightBookings([[1,2,10],[2,3,20],[2,5,25]],5))

输入值

[[1,2,10],[2,3,20],[2,5,25]]
5

输出结果

[10, 55, 45, 25, 25]