解题思路:
1.创建一个vector ,遍历bookings,在区间vector 区间[ first , last ] 都加上 seats,
但是超时了。时间复杂度O(m*n) ,其中 n为要求的数组长度,m 为预定记录的数量.
2.前缀和+差分 ( 具体的思想讲解-> B站 星锤月朦胧 )
class Solution {
public:
vector<int> corpFlightBookings(vector<vector<int>>& bookings, int n)
{
vector<int> ret(n, 0);
for(vector<int>& e : bookings)
{
ret[e[0]-1] += e[2];
if(e[1] < n)
{
ret[e[1]] -= e[2];
}
}
for(int i = 0 ; i < n-1 ;++i)
{
ret[i+1] += ret[i];
}
return ret;
}
};