1109. 航班预订统计
Posted yangbocsu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1109. 航班预订统计相关的知识,希望对你有一定的参考价值。
1109. 航班预订统计
一、题目
这里有 n 个航班,它们分别从 1 到 n 进行编号。
有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [firsti, lasti, seatsi] 意味着在从 firsti 到 lasti (包含 firsti 和 lasti )的 每个航班 上预订了 seatsi 个座位。
请你返回一个长度为 n 的数组 answer,里面的元素是每个航班预定的座位总数。
二、参考代码
2.1 暴力法
class Solution
public int[] corpFlightBookings(int[][] bookings, int n)
int[] arr = new int[n];
for(int[] num : bookings)
for(int i = num[0]-1; i<num[1];i++)
arr[i] += num[2];
return arr;
2.2 差分数组法
class Solution
public int[] corpFlightBookings(int[][] bookings, int n)
// 构造差分数组
int[] diff = new int[n];
for(int[] num : bookings)
int start = num[0]-1;
int end = num[1] - 1;
int val = num[2];
diff[start] += val;
if(end < n - 1)
diff[end + 1] -= val;
// 根据差分数组 还原 结果数组
for(int i = 1; i < n; i++)
diff[i] += diff[i-1];
return diff;
以上是关于1109. 航班预订统计的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode刷题100天—1109. 航班预订统计(数组)—day24