📅  最后修改于: 2023-12-03 15:37:44.166000             🧑  作者: Mango
此题需要编写一个程序,计算在给定的N个航班中每个航班预订的座位数总和。
输入数据为一个二维数组bookings,数组中的每一个元素bookings[i]代表第i个预订记录,包含三个整数:
输出一个长度为n的数组ans,其中ans[i]表示第i个航班预订的座位数量总和。
输入:bookings = [[1,2,10],[2,3,20],[2,5,25]], n = 5
输出:[10,55,45,0,0]
解释:
通过创建一个长度为n的数组ans用于存储每个航班预订的座位数总和,然后遍历输入数据bookings中的每个元素,将对应航班的座位预订数加到ans数组中相应位置即可,最后返回ans数组。
def corpFlightBookings(bookings, n):
# 初始化 ans 数组
ans = [0] * n
# 对 bookings 中的每个预订记录进行处理
for b in bookings:
i, j, k = b
ans[i - 1] += k # 对应航班的座位预订数加到 ans 数组中
if j > 1:
ans[j - 2] -= k # 计算结束座位后一位的位置
# 对 ans 数组做前缀和处理
for i in range(1, n):
ans[i] += ans[i - 1]
return ans