File tree Expand file tree Collapse file tree 8 files changed +58
-88
lines changed
1000-1099/1094.Car Pooling
1100-1199/1109.Corporate Flight Bookings Expand file tree Collapse file tree 8 files changed +58
-88
lines changed Original file line number Diff line number Diff line change @@ -59,12 +59,7 @@ class Solution:
59
59
for num, start, end in trips:
60
60
delta[start] += num
61
61
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))
68
63
```
69
64
70
65
### ** Java**
@@ -101,18 +96,17 @@ class Solution {
101
96
* @return {boolean}
102
97
*/
103
98
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;
109
103
}
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
+ }
116
110
}
117
111
return true ;
118
112
};
Original file line number Diff line number Diff line change @@ -49,12 +49,7 @@ class Solution:
49
49
for num, start, end in trips:
50
50
delta[start] += num
51
51
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))
58
53
```
59
54
60
55
### ** Java**
@@ -89,18 +84,17 @@ class Solution {
89
84
* @return {boolean}
90
85
*/
91
86
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;
97
91
}
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
+ }
104
98
}
105
99
return true ;
106
100
};
Original file line number Diff line number Diff line change 4
4
* @return {boolean }
5
5
*/
6
6
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 ;
12
11
}
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
+ }
19
18
}
20
19
return true ;
21
20
} ;
Original file line number Diff line number Diff line change 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 ))
Original file line number Diff line number Diff line change @@ -88,9 +88,7 @@ class Solution:
88
88
delta[first - 1 ] += seats
89
89
if last < n:
90
90
delta[last] -= seats
91
- for i in range (n - 1 ):
92
- delta[i + 1 ] += delta[i]
93
- return delta
91
+ return list (accumulate(delta))
94
92
```
95
93
96
94
树状数组:
@@ -214,15 +212,13 @@ class BinaryIndexedTree {
214
212
*/
215
213
var corpFlightBookings = function (bookings , n ) {
216
214
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;
221
217
if (end != n) {
222
218
delta[end] -= num;
223
219
}
224
220
}
225
- for (let i = 1 ; i < n; i ++ ) {
221
+ for (let i = 1 ; i < n; ++ i ) {
226
222
delta[i] += delta[i - 1 ];
227
223
}
228
224
return delta;
Original file line number Diff line number Diff line change @@ -64,9 +64,7 @@ class Solution:
64
64
delta[first - 1 ] += seats
65
65
if last < n:
66
66
delta[last] -= seats
67
- for i in range (n - 1 ):
68
- delta[i + 1 ] += delta[i]
69
- return delta
67
+ return list (accumulate(delta))
70
68
```
71
69
72
70
``` python
@@ -180,15 +178,13 @@ class BinaryIndexedTree {
180
178
*/
181
179
var corpFlightBookings = function (bookings , n ) {
182
180
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;
187
183
if (end != n) {
188
184
delta[end] -= num;
189
185
}
190
186
}
191
- for (let i = 1 ; i < n; i ++ ) {
187
+ for (let i = 1 ; i < n; ++ i ) {
192
188
delta[i] += delta[i - 1 ];
193
189
}
194
190
return delta;
Original file line number Diff line number Diff line change 5
5
*/
6
6
var corpFlightBookings = function ( bookings , n ) {
7
7
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 ;
12
10
if ( end != n ) {
13
11
delta [ end ] -= num ;
14
12
}
15
13
}
16
- for ( let i = 1 ; i < n ; i ++ ) {
14
+ for ( let i = 1 ; i < n ; ++ i ) {
17
15
delta [ i ] += delta [ i - 1 ] ;
18
16
}
19
17
return delta ;
Original file line number Diff line number Diff line change 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 ))
You can’t perform that action at this time.
0 commit comments