航班预订统计问题及差分数组解法详解
题目描述
假设有 n
个航班,航班编号从 1 到 n
。你有一个预订记录列表 bookings
,其中每条记录 bookings[i] = [first_i, last_i, seats_i]
表示从航班 first_i
到 last_i
(包含两端)的所有航班上,各预订了 seats_i
个座位。
请你返回一个长度为 n
的数组 answer
,其中 answer[i]
表示第 i+1
个航班被预订的座位总数。
问题理解
n
个航班,编号从 1 到n
。- 每条预订记录对一段航班区间内的所有航班加座位数。
- 任务是统计每个航班最终的被预订座位数。
- 直接模拟每条预订对所有区间内航班更新座位数,最坏会导致时间复杂度较高。
解题分析
直接方法(暴力法):
对每条预订 [first, last, seats]
,将区间内的所有航班加上 seats
。
- 时间复杂度:每条预订需要更新
(last - first + 1)
个航班,m</