這裏有 n
個航班,它們分別從 1
到 n
進行編號。數組
咱們這兒有一份航班預訂表,表中第 i
條預訂記錄 bookings[i] = [i, j, k]
意味着咱們在從 i
到 j
的每一個航班上預訂了 k
個座位。spa
請你返回一個長度爲 n
的數組 answer
,按航班編號順序返回每一個航班上預訂的座位數。code
示例:blog
輸入:bookings = [[1,2,10],[2,3,20],[2,5,25]], n = 5 輸出:[10,55,45,25,25]
提示:內存
1 <= bookings.length <= 20000
1 <= bookings[i][0] <= bookings[i][1] <= n <= 20000
1 <= bookings[i][2] <= 10000
/** * @param {number[][]} bookings * @param {number} n * @return {number[]} */ /* // 20000個航班就不行了 var corpFlightBookings = function(bookings, n) { let res =[]; let sum = 0; for(let i=1; i<=n; i++){ sum = 0; for(let j=0; j<bookings.length; j++){ if(i>=bookings[j][0] && i<=bookings[j][1]){ sum += bookings[j][2]; } } res.push(sum); } return res; }; */ var corpFlightBookings = function(bookings, n) { const res = Array(n).fill(0) bookings.forEach(v => { // v[1]-v[0] 必然是小於等於20000的 for (let i = v[0]; i <= v[1]; i++) { res[i - 1] += v[2] } }) return res };
我的理解:io
以前的寫法會內存溢出,能夠考慮每一個條記錄的前兩個元素正是某個區域的航班,必然小於n個航班;由原來的push操做,直接變爲賦值操做。function