一、题目描述
二、示例
三、难度
中等 实际就是个差分数组题与370.区间加法一样,只是要注意下标取值
四、代码
Java版
package per.Kidd.demo;
/**
* @author Kidd
* @create 2022-04-20 13:30
*/
/*
* 1109. 航班预订统计
*/
public class Solution {
private int[] diff;
public int[] corpFlightBookings(int[][] bookings, int n) {
//构造差分数组
diff = new int[n];
for (int[] arr : bookings) {
diff[arr[0]-1] += arr[2];
if (arr[1] < diff.length) {
diff[arr[1]] -= arr[2];
}
}
//还原数组 题目要求返回一个长度为 n 的数组
int[] res = new int[n];
res[0] = diff[0];
for (int i = 1; i < n; ++i) {
res[i] = res[i - 1] + diff[i];
}
return res;
}
public static void main(String[] args) {
int n = 2;
int[][] updates = {
{1, 2, 10},
{2, 2, 15}
};
Solution s = new Solution();
int[] modifiedArray = s.corpFlightBookings(updates, n);
for (int i = 0; i < n; ++i) {
System.out.print(modifiedArray[i] + " ");
}
}
}