题目:
这里有 n 个航班,它们分别从 1 到 n 进行编号。
有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [firsti, lasti, seatsi] 意味着在从 firsti 到 lasti (包含 firsti 和 lasti )的 每个航班 上预订了 seatsi 个座位。
请你返回一个长度为 n 的数组 answer,里面的元素是每个航班预定的座位总数。
算法:
方法一:差分数组
模板题。
func corpFlightBookings(bookings [][]int, n int) []int {
diff := make([]int, n)
for i := range bookings {
left, right := bookings[i][0] - 1,bookings[i][1] - 1
diff[left] = diff[left] + bookings[i][2]
if right + 1 < n {
diff[right + 1] = diff[right + 1] - bookings[i][2]
}
}
for i := 1; i < len(diff); i ++ {
diff[i] = diff[i - 1] + diff[i]
}
return diff[:n]
}