【leetcodeブラシノート】5118.フライト予約統計


タイトルリンク:https://leetcode-cn.com/contest/weekly-contest-144/problems/corporate-flight-bookings/
1.テーマ
ここにはn便があり、それぞれ1からnまで番号が付けられています.
ここにフライト予約表があります.表のi番目の予約記録bookings[i]=[i,j,k]は、iからjまでのフライトごとにk席を予約したことを意味します.
長さnの配列answerを返し、フライト番号順に各フライトで予約した座席数を返してください.
2.考え方
直接暴力計算はタイムアウトになるので、接頭辞と配列で答えを計算するには、区間端点を処理し、区間始点に所定数を加え、終点の次に所定数を減らし、最後にans[i]=ans[i]+ans[i-1](i>=1)
3.コード
class Solution
{
     
public:
    vector<int> corpFlightBookings(vector<vector<int>>& bookings, int n) 
    {
     
        vector<int>ans(n);
        for(int i = 0; i < bookings.size(); i++)
        {
     
            int l =  bookings[i][0];
            int r =  bookings[i][1];
            int c =  bookings[i][2];
            ans[l-1] += c;
            if(r<n)
                ans[r] -= c;
        }
        for(int i = 1; i < n; i++)
        {
     
            ans[i]=ans[i-1]+ans[i];
        }
        
        return ans;
    }
};