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]