Skip to content

Commit 2e40b2f

Browse files
committed
feat: update solutions to lc problems
* No.1094.Car Pooling * No.1109.Corporate Flight Bookings
1 parent 5ec5b19 commit 2e40b2f

File tree

8 files changed

+58
-88
lines changed

8 files changed

+58
-88
lines changed

solution/1000-1099/1094.Car Pooling/README.md

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,7 @@ class Solution:
5959
for num, start, end in trips:
6060
delta[start] += num
6161
delta[end] -= num
62-
cur = 0
63-
for num in delta:
64-
cur += num
65-
if cur > capacity:
66-
return False
67-
return True
62+
return all(s <= capacity for s in accumulate(delta))
6863
```
6964

7065
### **Java**
@@ -101,18 +96,17 @@ class Solution {
10196
* @return {boolean}
10297
*/
10398
var carPooling = function (trips, capacity) {
104-
let delta = new Array();
105-
for (let trip of trips) {
106-
let [num, start, end] = trip;
107-
delta[start] = (delta[start] || 0) + num;
108-
delta[end] = (delta[end] || 0) - num;
99+
let delta = new Array(1001).fill(0);
100+
for (let [num, start, end] of trips) {
101+
delta[start] += num;
102+
delta[end] -= num;
109103
}
110-
let total = 0;
111-
for (let i = 0; i < delta.length; i++) {
112-
let cur = delta[i];
113-
if (cur == undefined) continue;
114-
total += cur;
115-
if (total > capacity) return false;
104+
let s = 0;
105+
for (let num of delta) {
106+
s += num;
107+
if (s > capacity) {
108+
return false;
109+
}
116110
}
117111
return true;
118112
};

solution/1000-1099/1094.Car Pooling/README_EN.md

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,7 @@ class Solution:
4949
for num, start, end in trips:
5050
delta[start] += num
5151
delta[end] -= num
52-
cur = 0
53-
for num in delta:
54-
cur += num
55-
if cur > capacity:
56-
return False
57-
return True
52+
return all(s <= capacity for s in accumulate(delta))
5853
```
5954

6055
### **Java**
@@ -89,18 +84,17 @@ class Solution {
8984
* @return {boolean}
9085
*/
9186
var carPooling = function (trips, capacity) {
92-
let delta = new Array();
93-
for (let trip of trips) {
94-
let [num, start, end] = trip;
95-
delta[start] = (delta[start] || 0) + num;
96-
delta[end] = (delta[end] || 0) - num;
87+
let delta = new Array(1001).fill(0);
88+
for (let [num, start, end] of trips) {
89+
delta[start] += num;
90+
delta[end] -= num;
9791
}
98-
let total = 0;
99-
for (let i = 0; i < delta.length; i++) {
100-
let cur = delta[i];
101-
if (cur == undefined) continue;
102-
total += cur;
103-
if (total > capacity) return false;
92+
let s = 0;
93+
for (let num of delta) {
94+
s += num;
95+
if (s > capacity) {
96+
return false;
97+
}
10498
}
10599
return true;
106100
};

solution/1000-1099/1094.Car Pooling/Solution.js

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,17 @@
44
* @return {boolean}
55
*/
66
var carPooling = function (trips, capacity) {
7-
let delta = new Array();
8-
for (let trip of trips) {
9-
let [num, start, end] = trip;
10-
delta[start] = (delta[start] || 0) + num;
11-
delta[end] = (delta[end] || 0) - num;
7+
let delta = new Array(1001).fill(0);
8+
for (let [num, start, end] of trips) {
9+
delta[start] += num;
10+
delta[end] -= num;
1211
}
13-
let total = 0;
14-
for (let i = 0; i < delta.length; i++) {
15-
let cur = delta[i];
16-
if (cur == undefined) continue;
17-
total += cur;
18-
if (total > capacity) return false;
12+
let s = 0;
13+
for (let num of delta) {
14+
s += num;
15+
if (s > capacity) {
16+
return false;
17+
}
1918
}
2019
return true;
2120
};
Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
1-
class Solution:
2-
def carPooling(self, trips: List[List[int]], capacity: int) -> bool:
3-
delta = [0] * 1001
4-
for num, start, end in trips:
5-
delta[start] += num
6-
delta[end] -= num
7-
cur = 0
8-
for num in delta:
9-
cur += num
10-
if cur > capacity:
11-
return False
12-
return True
1+
class Solution:
2+
def carPooling(self, trips: List[List[int]], capacity: int) -> bool:
3+
delta = [0] * 1001
4+
for num, start, end in trips:
5+
delta[start] += num
6+
delta[end] -= num
7+
return all(s <= capacity for s in accumulate(delta))

solution/1100-1199/1109.Corporate Flight Bookings/README.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,7 @@ class Solution:
8888
delta[first - 1] += seats
8989
if last < n:
9090
delta[last] -= seats
91-
for i in range(n - 1):
92-
delta[i + 1] += delta[i]
93-
return delta
91+
return list(accumulate(delta))
9492
```
9593

9694
树状数组:
@@ -214,15 +212,13 @@ class BinaryIndexedTree {
214212
*/
215213
var corpFlightBookings = function (bookings, n) {
216214
let delta = new Array(n).fill(0);
217-
for (let book of bookings) {
218-
let [start, end, num] = book;
219-
start -= 1;
220-
delta[start] += num;
215+
for (let [start, end, num] of bookings) {
216+
delta[start - 1] += num;
221217
if (end != n) {
222218
delta[end] -= num;
223219
}
224220
}
225-
for (let i = 1; i < n; i++) {
221+
for (let i = 1; i < n; ++i) {
226222
delta[i] += delta[i - 1];
227223
}
228224
return delta;

solution/1100-1199/1109.Corporate Flight Bookings/README_EN.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,7 @@ class Solution:
6464
delta[first - 1] += seats
6565
if last < n:
6666
delta[last] -= seats
67-
for i in range(n - 1):
68-
delta[i + 1] += delta[i]
69-
return delta
67+
return list(accumulate(delta))
7068
```
7169

7270
```python
@@ -180,15 +178,13 @@ class BinaryIndexedTree {
180178
*/
181179
var corpFlightBookings = function (bookings, n) {
182180
let delta = new Array(n).fill(0);
183-
for (let book of bookings) {
184-
let [start, end, num] = book;
185-
start -= 1;
186-
delta[start] += num;
181+
for (let [start, end, num] of bookings) {
182+
delta[start - 1] += num;
187183
if (end != n) {
188184
delta[end] -= num;
189185
}
190186
}
191-
for (let i = 1; i < n; i++) {
187+
for (let i = 1; i < n; ++i) {
192188
delta[i] += delta[i - 1];
193189
}
194190
return delta;

solution/1100-1199/1109.Corporate Flight Bookings/Solution.js

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,13 @@
55
*/
66
var corpFlightBookings = function (bookings, n) {
77
let delta = new Array(n).fill(0);
8-
for (let book of bookings) {
9-
let [start, end, num] = book;
10-
start -= 1;
11-
delta[start] += num;
8+
for (let [start, end, num] of bookings) {
9+
delta[start - 1] += num;
1210
if (end != n) {
1311
delta[end] -= num;
1412
}
1513
}
16-
for (let i = 1; i < n; i++) {
14+
for (let i = 1; i < n; ++i) {
1715
delta[i] += delta[i - 1];
1816
}
1917
return delta;
Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
class Solution:
2-
def corpFlightBookings(self, bookings: List[List[int]], n: int) -> List[int]:
3-
delta = [0] * n
4-
for first, last, seats in bookings:
5-
delta[first - 1] += seats
6-
if last < n:
7-
delta[last] -= seats
8-
for i in range(n - 1):
9-
delta[i + 1] += delta[i]
10-
return delta
1+
class Solution:
2+
def corpFlightBookings(self, bookings: List[List[int]], n: int) -> List[int]:
3+
delta = [0] * n
4+
for first, last, seats in bookings:
5+
delta[first - 1] += seats
6+
if last < n:
7+
delta[last] -= seats
8+
return list(accumulate(delta))

0 commit comments

Comments
 (0)