diff --git a/solution/1000-1099/1094.Car Pooling/README.md b/solution/1000-1099/1094.Car Pooling/README.md index 9c1bea85327b6..38d363528fccd 100644 --- a/solution/1000-1099/1094.Car Pooling/README.md +++ b/solution/1000-1099/1094.Car Pooling/README.md @@ -64,6 +64,8 @@ +差分数组 + ### **Python3** @@ -82,6 +84,32 @@ ``` +### **JavaScript** + +```js +/** + * @param {number[][]} trips + * @param {number} capacity + * @return {boolean} + */ + var carPooling = function(trips, capacity) { + let delta = new Array(); + for (let trip of trips) { + let [num, start, end] = trip; + delta[start] = (delta[start] || 0) + num; + delta[end] = (delta[end] || 0) - num; + } + let total = 0; + for (let i = 0; i < delta.length; i++) { + let cur = delta[i]; + if (cur == undefined) continue; + total += cur; + if (total > capacity) return false; + } + return true; +}; +``` + ### **...** ``` diff --git a/solution/1000-1099/1094.Car Pooling/README_EN.md b/solution/1000-1099/1094.Car Pooling/README_EN.md index ef656df14c12a..647d4b48b163e 100644 --- a/solution/1000-1099/1094.Car Pooling/README_EN.md +++ b/solution/1000-1099/1094.Car Pooling/README_EN.md @@ -82,6 +82,32 @@ ``` +### **JavaScript** + +```js +/** + * @param {number[][]} trips + * @param {number} capacity + * @return {boolean} + */ + var carPooling = function(trips, capacity) { + let delta = new Array(); + for (let trip of trips) { + let [num, start, end] = trip; + delta[start] = (delta[start] || 0) + num; + delta[end] = (delta[end] || 0) - num; + } + let total = 0; + for (let i = 0; i < delta.length; i++) { + let cur = delta[i]; + if (cur == undefined) continue; + total += cur; + if (total > capacity) return false; + } + return true; +}; +``` + ### **...** ``` diff --git a/solution/1000-1099/1094.Car Pooling/Solution.js b/solution/1000-1099/1094.Car Pooling/Solution.js new file mode 100644 index 0000000000000..de45137be2266 --- /dev/null +++ b/solution/1000-1099/1094.Car Pooling/Solution.js @@ -0,0 +1,21 @@ +/** + * @param {number[][]} trips + * @param {number} capacity + * @return {boolean} + */ + var carPooling = function(trips, capacity) { + let delta = new Array(); + for (let trip of trips) { + let [num, start, end] = trip; + delta[start] = (delta[start] || 0) + num; + delta[end] = (delta[end] || 0) - num; + } + let total = 0; + for (let i = 0; i < delta.length; i++) { + let cur = delta[i]; + if (cur == undefined) continue; + total += cur; + if (total > capacity) return false; + } + return true; +}; \ No newline at end of file diff --git a/solution/1100-1199/1109.Corporate Flight Bookings/README.md b/solution/1100-1199/1109.Corporate Flight Bookings/README.md index 4c3813f8b0173..158ed8d4e30f4 100644 --- a/solution/1100-1199/1109.Corporate Flight Bookings/README.md +++ b/solution/1100-1199/1109.Corporate Flight Bookings/README.md @@ -76,6 +76,31 @@ ``` +### **JavaScript** + +```js +/** + * @param {number[][]} bookings + * @param {number} n + * @return {number[]} + */ +var corpFlightBookings = function(bookings, n) { + let delta = new Array(n).fill(0); + for (let book of bookings) { + let [start, end, num] = book; + start -= 1; + delta[start] += num; + if (end != n) { + delta[end] -= num; + } + } + for (let i = 1; i < n; i++) { + delta[i] += delta[i - 1]; + } + return delta; +}; +``` + ### **...** ``` diff --git a/solution/1100-1199/1109.Corporate Flight Bookings/README_EN.md b/solution/1100-1199/1109.Corporate Flight Bookings/README_EN.md index 86041a638c1d9..4b10ec8bddbcf 100644 --- a/solution/1100-1199/1109.Corporate Flight Bookings/README_EN.md +++ b/solution/1100-1199/1109.Corporate Flight Bookings/README_EN.md @@ -67,6 +67,31 @@ Hence, answer = [10,25] ``` +### **JavaScript** + +```js +/** + * @param {number[][]} bookings + * @param {number} n + * @return {number[]} + */ +var corpFlightBookings = function(bookings, n) { + let delta = new Array(n).fill(0); + for (let book of bookings) { + let [start, end, num] = book; + start -= 1; + delta[start] += num; + if (end != n) { + delta[end] -= num; + } + } + for (let i = 1; i < n; i++) { + delta[i] += delta[i - 1]; + } + return delta; +}; +``` + ### **...** ``` diff --git a/solution/1100-1199/1109.Corporate Flight Bookings/Solution.js b/solution/1100-1199/1109.Corporate Flight Bookings/Solution.js new file mode 100644 index 0000000000000..60c6f8efa00e5 --- /dev/null +++ b/solution/1100-1199/1109.Corporate Flight Bookings/Solution.js @@ -0,0 +1,20 @@ +/** + * @param {number[][]} bookings + * @param {number} n + * @return {number[]} + */ + var corpFlightBookings = function(bookings, n) { + let delta = new Array(n).fill(0); + for (let book of bookings) { + let [start, end, num] = book; + start -= 1; + delta[start] += num; + if (end != n) { + delta[end] -= num; + } + } + for (let i = 1; i < n; i++) { + delta[i] += delta[i - 1]; + } + return delta; +}; \ No newline at end of file