思路:
这道题假如要用暴力的方法,是过不去的。要使用差分的思想,创建一个差数组。因为本道题初始的座位数是0,直接建立一个全0数组即可。
参考代码:
class Solution {
public:
vector<int> corpFlightBookings(vector<vector<int>>& bookings, int n) {
vector<int> v;
for(int i = 0;i <= n; i++) //此处需要多加个一个0,因为飞机编号是从1开始的
v.push_back(0);
int first, last, seats;
for(int i = 0; i < bookings.size(); i++)
{
first = bookings[i][0];
last = bookings[i][1];
seats = bookings[i][2];
v[first-1] += seats;
v[last] -= seats;
}
for(int i = 1; i < n; i++) //将差分数组转成正常的座位数
v[i] += v[i-1];
v.pop_back();
return v;
}
};