Leetcode刷题100天—1109. 航班预订统计(数组)—day24

Posted 神的孩子都在歌唱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode刷题100天—1109. 航班预订统计(数组)—day24相关的知识,希望对你有一定的参考价值。

前言:

作者:神的孩子在歌唱

大家好,我叫运智

今天学到了新技能分差

1109. 航班预订统计

难度中等221收藏分享切换为英文接收动态反馈

这里有 n 个航班,它们分别从 1n 进行编号。

有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [firsti, lasti, seatsi] 意味着在从 firstilasti包含 firstilasti )的 每个航班 上预订了 seatsi 个座位。

请你返回一个长度为 n 的数组 answer,其中 answer[i] 是航班 i 上预订的座位总数。

示例 1:

输入:bookings = [[1,2,10],[2,3,20],[2,5,25]], n = 5
输出:[10,55,45,25,25]
解释:
航班编号        1   2   3   4   5
预订记录 1 :   10  10
预订记录 2 :       20  20
预订记录 3 :       25  25  25  25
总座位数:      10  55  45  25  25
因此,answer = [10,55,45,25,25]

示例 2:

输入:bookings = [[1,2,10],[2,2,15]], n = 2
输出:[10,25]
解释:
航班编号        1   2
预订记录 1 :   10  10
预订记录 2 :       15
总座位数:      10  25
因此,answer = [10,25]

提示:

  • 1 <= n <= 2 * 104
  • 1 <= bookings.length <= 2 * 104
  • bookings[i].length == 3
  • 1 <= firsti <= lasti <= n
  • 1 <= seatsi <= 104
package 数组;
/*
 * https://leetcode-cn.com/problems/corporate-flight-bookings/
 */
public class _1109_航班预订统计 {
//	求一个区间的增量叠加,可以用差分的方法
    public int[] corpFlightBookings(int[][] bookings, int n) {
//    	定义一个数组
    	int[] res=new int[n];
//    	通过for循环遍历二维数组
    	for(int[] booking:bookings) {
//    		将区间开头的编号预定记录存入
    		res[booking[0]-1]+=booking[2];
//    		如果该数组最后的区间小于n,那么说明还没有到最大,并且该区间没有booking[2]这个元素值,那么减去就行了
    		if (booking[1]<n) {
				res[booking[1]]-=booking[2];
			}
    	}
/*
	解释:bookings = [[1,2,10],[2,3,20],[2,5,25]], n = 5
	数组编号  :      0   1   2   3   4
	第一数组  :     10  	 -10
	第二数组  :      	  20  	 -20
	第三数组  :     	  25		   0
	因此,res = [10,45,-10,-20,0]

*/
//    	遍历完成后,在遍历相邻的两个数求分差就可以直到结果了
    	for(int i=1;i<n;i++) {
//    		后一个数加上前一个数
    		res[i]+=res[i-1];
    	}
/*
	数组编号  :      0   1   2   3   4
	第一:res = [10,55,-10,-20,0]
	第二:res = [10,55,45,-20,0]
	第三:res = [10,55,45,25,0]
	第四:res = [10,55,45,25,25]
 */
    	return res;
    }
}

本人csdn博客:https://blog.csdn.net/weixin_46654114

转载说明:跟我说明,务必注明来源,附带本人博客连接。

以上是关于Leetcode刷题100天—1109. 航班预订统计(数组)—day24的主要内容,如果未能解决你的问题,请参考以下文章

leetcode1109 航班预订统计

C++&Python描述 LeetCode 1109. 航班预订统计

LeetCode 1109. 航班预订统计(差分数组基于差分的树状数组)/ 165. 比较版本号 / 剑指 Offer 22. 链表中倒数第k个节点

1109. 航班预订统计

1109. 航班预订统计

[M差分] lc1109. 航班预订统计(差分+水题)