diff --git a/solution/0500-0599/0503.Next Greater Element II/README.md b/solution/0500-0599/0503.Next Greater Element II/README.md index 577864085a07a..f8ff85b4ce89c 100644 --- a/solution/0500-0599/0503.Next Greater Element II/README.md +++ b/solution/0500-0599/0503.Next Greater Element II/README.md @@ -67,6 +67,28 @@ class Solution { } ``` +### **JavaScript** + +```js +/** + * @param {number[]} nums + * @return {number[]} + */ + var nextGreaterElements = function(nums) { + let n = nums.length; + let stack = []; + let res = new Array(n).fill(-1); + for (let i = 0; i < 2 * n; i++) { + let cur = nums[i % n]; + while(stack.length > 0 && nums[stack[stack.length - 1]] < cur) { + res[stack.pop()] = cur; + } + stack.push(i % n); + } + return res; +}; +``` + ### **...** ``` diff --git a/solution/0500-0599/0503.Next Greater Element II/README_EN.md b/solution/0500-0599/0503.Next Greater Element II/README_EN.md index b37325b5b3e49..cc7cb0dece2cf 100644 --- a/solution/0500-0599/0503.Next Greater Element II/README_EN.md +++ b/solution/0500-0599/0503.Next Greater Element II/README_EN.md @@ -74,6 +74,28 @@ class Solution { } ``` +### **JavaScript** + +```js +/** + * @param {number[]} nums + * @return {number[]} + */ + var nextGreaterElements = function(nums) { + let n = nums.length; + let stack = []; + let res = new Array(n).fill(-1); + for (let i = 0; i < 2 * n; i++) { + let cur = nums[i % n]; + while(stack.length > 0 && nums[stack[stack.length - 1]] < cur) { + res[stack.pop()] = cur; + } + stack.push(i % n); + } + return res; +}; +``` + ### **...** ``` diff --git a/solution/0500-0599/0503.Next Greater Element II/Solution.js b/solution/0500-0599/0503.Next Greater Element II/Solution.js new file mode 100644 index 0000000000000..303f8d0ed8a6b --- /dev/null +++ b/solution/0500-0599/0503.Next Greater Element II/Solution.js @@ -0,0 +1,17 @@ +/** + * @param {number[]} nums + * @return {number[]} + */ + var nextGreaterElements = function(nums) { + let n = nums.length; + let stack = []; + let res = new Array(n).fill(-1); + for (let i = 0; i < 2 * n; i++) { + let cur = nums[i % n]; + while(stack.length > 0 && nums[stack[stack.length - 1]] < cur) { + res[stack.pop()] = cur; + } + stack.push(i % n); + } + return res; +}; \ No newline at end of file diff --git a/solution/1000-1099/1094.Car Pooling/README.md b/solution/1000-1099/1094.Car Pooling/README.md index 70ee6ac36e1f2..82b3a0bd81f59 100644 --- a/solution/1000-1099/1094.Car Pooling/README.md +++ b/solution/1000-1099/1094.Car Pooling/README.md @@ -64,7 +64,7 @@ -差分数组。 +差分数组 @@ -162,6 +162,32 @@ public: }; ``` +### **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 69e08ba48e024..0f14c7d9765ee 100644 --- a/solution/1000-1099/1094.Car Pooling/README_EN.md +++ b/solution/1000-1099/1094.Car Pooling/README_EN.md @@ -160,6 +160,32 @@ public: }; ``` +### **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/1100-1199/1109.Corporate Flight Bookings/README.md b/solution/1100-1199/1109.Corporate Flight Bookings/README.md index 1e9fc72336df1..d321c6ea09d45 100644 --- a/solution/1100-1199/1109.Corporate Flight Bookings/README.md +++ b/solution/1100-1199/1109.Corporate Flight Bookings/README.md @@ -147,6 +147,31 @@ public: }; ``` +### **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 0133c233ef865..463666586e31c 100644 --- a/solution/1100-1199/1109.Corporate Flight Bookings/README_EN.md +++ b/solution/1100-1199/1109.Corporate Flight Bookings/README_EN.md @@ -138,6 +138,31 @@ public: }; ``` +### **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; +}; +``` + ### **...** ```