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

Posted Ypuyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[M差分] lc1109. 航班预订统计(差分+水题)相关的知识,希望对你有一定的参考价值。

1. 题目来源

链接:1109. 航班预订统计

2. 题目解析

差分即可,没啥意思。可以特判第 n 位的情况,省去数组 res 的空间开销。元素从 1 开始,-1 映射到从 0 开始即可。


  • 时间复杂度 O ( n ) O(n) O(n)
  • 空间复杂度 O ( n ) O(n) O(n)

class Solution {
public:
    vector<int> corpFlightBookings(vector<vector<int>>& bookings, int n) {
        vector<int> f(n + 1);
        for (auto book : bookings) f[book[0] - 1] += book[2], f[book[1]] -= book[2];
        for (int i = 1; i <= n; i ++ ) f[i] += f[i - 1];

        vector<int> res(n);
        for (int i = 0; i < n; i ++ ) res[i] = f[i];

        return res; 
    }
};

特判

class Solution {
public:
    vector<int> corpFlightBookings(vector<vector<int>>& bookings, int n) {
        vector<int> f(n);
        for (auto book : bookings) {
            int l = book[0], r = book[1] + 1, w = book[2];
            f[l - 1] += w;
            if (r - 1 < n) f[r - 1] -= w;
        }
        for (int i = 1; i < n; i ++ ) f[i] += f[i - 1];

        return f; 
    }
};

以上是关于[M差分] lc1109. 航班预订统计(差分+水题)的主要内容,如果未能解决你的问题,请参考以下文章

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

航班预订统计--差分数组解决

1109. 航班预订统计

1109. 航班预订统计

航班预订统计(差分数组)

航班预订统计(差分数组)