题目: 我们这儿有一份航班预订表,表中第 i 条预订记录 bookings[i] = [i, j, k] 意味着我们在从 i 到 j 的每个航班上预订了 k 个座位。
请你返回一个长度为 n 的数组 answer,按航班编号顺序返回每个航班上预订的座位数
示例:
- 输入:bookings = [[1,2,10],[2,3,20],[2,5,25]], n = 5
- 输出:[10,55,45,25,25]
vector<int> corpFlightBookings(vector<vector<int>>& bookings, int n) {
vector<int> vec(n,0);
for(auto v: bookings)
{
int l = v[0]-1;
int r = v[1]-1;
int a = v[2];
vec[l]+=a;
if(r+1<n)
{
vec[r+1] -= a;
}
}
for(int i = 1;i<n;i++)
{
vec[i]+=vec[i-1];
}
return vec;
找个例子画画就可以理解了
大概意思就是l标志起始点,r+1标志结束点
稳稳的O(n)级别了