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. 航班预订统计的主要内容,如果未能解决你的问题,请参考以下文章

1109. 航班预订统计

1109. 航班预订统计

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

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

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

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