这里有 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