File tree Expand file tree Collapse file tree 12 files changed +33
-36
lines changed
0600-0699/0630.Course Schedule III
0900-0999/0973.K Closest Points to Origin
1900-1999/1962.Remove Stones to Minimize the Total
2800-2899/2856.Minimum Array Length After Pair Removals Expand file tree Collapse file tree 12 files changed +33
-36
lines changed Original file line number Diff line number Diff line change @@ -179,13 +179,13 @@ func (h *hp) pop() int { return heap.Pop(h).(int) }
179
179
``` ts
180
180
function scheduleCourse(courses : number [][]): number {
181
181
courses .sort ((a , b ) => a [1 ] - b [1 ]);
182
- const pq = new MaxPriorityQueue ();
182
+ const pq = new MaxPriorityQueue < number > ();
183
183
let s = 0 ;
184
184
for (const [duration, last] of courses ) {
185
185
pq .enqueue (duration );
186
186
s += duration ;
187
187
while (s > last ) {
188
- s -= pq .dequeue (). element ;
188
+ s -= pq .dequeue ();
189
189
}
190
190
}
191
191
return pq .size ();
Original file line number Diff line number Diff line change @@ -170,13 +170,13 @@ func (h *hp) pop() int { return heap.Pop(h).(int) }
170
170
``` ts
171
171
function scheduleCourse(courses : number [][]): number {
172
172
courses .sort ((a , b ) => a [1 ] - b [1 ]);
173
- const pq = new MaxPriorityQueue ();
173
+ const pq = new MaxPriorityQueue < number > ();
174
174
let s = 0 ;
175
175
for (const [duration, last] of courses ) {
176
176
pq .enqueue (duration );
177
177
s += duration ;
178
178
while (s > last ) {
179
- s -= pq .dequeue (). element ;
179
+ s -= pq .dequeue ();
180
180
}
181
181
}
182
182
return pq .size ();
Original file line number Diff line number Diff line change 1
1
function scheduleCourse ( courses : number [ ] [ ] ) : number {
2
2
courses . sort ( ( a , b ) => a [ 1 ] - b [ 1 ] ) ;
3
- const pq = new MaxPriorityQueue ( ) ;
3
+ const pq = new MaxPriorityQueue < number > ( ) ;
4
4
let s = 0 ;
5
5
for ( const [ duration , last ] of courses ) {
6
6
pq . enqueue ( duration ) ;
7
7
s += duration ;
8
8
while ( s > last ) {
9
- s -= pq . dequeue ( ) . element ;
9
+ s -= pq . dequeue ( ) ;
10
10
}
11
11
}
12
12
return pq . size ( ) ;
Original file line number Diff line number Diff line change @@ -259,15 +259,15 @@ func (h *hp) Pop() any { a := *h; v := a[len(a)-1]; *h = a[:len(a)-1]; retur
259
259
260
260
``` ts
261
261
function kClosest(points : number [][], k : number ): number [][] {
262
- const maxQ = new MaxPriorityQueue ( );
262
+ const maxQ = new MaxPriorityQueue <{ point : number []; dist : number }>( entry => entry . dist );
263
263
for (const [x, y] of points ) {
264
264
const dist = x * x + y * y ;
265
- maxQ .enqueue ([x , y ], dist );
265
+ maxQ .enqueue ({ point: [x , y ], dist } );
266
266
if (maxQ .size () > k ) {
267
267
maxQ .dequeue ();
268
268
}
269
269
}
270
- return maxQ .toArray ().map (item => item . element );
270
+ return maxQ .toArray ().map (entry => entry . point );
271
271
}
272
272
```
273
273
Original file line number Diff line number Diff line change @@ -255,15 +255,15 @@ func (h *hp) Pop() any { a := *h; v := a[len(a)-1]; *h = a[:len(a)-1]; retur
255
255
256
256
``` ts
257
257
function kClosest(points : number [][], k : number ): number [][] {
258
- const maxQ = new MaxPriorityQueue ( );
258
+ const maxQ = new MaxPriorityQueue <{ point : number []; dist : number }>( entry => entry . dist );
259
259
for (const [x, y] of points ) {
260
260
const dist = x * x + y * y ;
261
- maxQ .enqueue ([x , y ], dist );
261
+ maxQ .enqueue ({ point: [x , y ], dist } );
262
262
if (maxQ .size () > k ) {
263
263
maxQ .dequeue ();
264
264
}
265
265
}
266
- return maxQ .toArray ().map (item => item . element );
266
+ return maxQ .toArray ().map (entry => entry . point );
267
267
}
268
268
```
269
269
Original file line number Diff line number Diff line change 1
1
function kClosest ( points : number [ ] [ ] , k : number ) : number [ ] [ ] {
2
- const maxQ = new MaxPriorityQueue ( ) ;
2
+ const maxQ = new MaxPriorityQueue < { point : number [ ] ; dist : number } > ( entry => entry . dist ) ;
3
3
for ( const [ x , y ] of points ) {
4
4
const dist = x * x + y * y ;
5
- maxQ . enqueue ( [ x , y ] , dist ) ;
5
+ maxQ . enqueue ( { point : [ x , y ] , dist } ) ;
6
6
if ( maxQ . size ( ) > k ) {
7
7
maxQ . dequeue ( ) ;
8
8
}
9
9
}
10
- return maxQ . toArray ( ) . map ( item => item . element ) ;
10
+ return maxQ . toArray ( ) . map ( entry => entry . point ) ;
11
11
}
Original file line number Diff line number Diff line change @@ -180,15 +180,14 @@ func (h *hp) pop() int { return heap.Pop(h).(int) }
180
180
181
181
``` ts
182
182
function minStoneSum(piles : number [], k : number ): number {
183
- const pq = new MaxPriorityQueue ();
183
+ const pq = new MaxPriorityQueue < number > ();
184
184
for (const x of piles ) {
185
185
pq .enqueue (x );
186
186
}
187
187
while (k -- ) {
188
- pq .enqueue ((pq .dequeue (). element + 1 ) >> 1 );
188
+ pq .enqueue ((pq .dequeue () + 1 ) >> 1 );
189
189
}
190
-
191
- return pq .toArray ().reduce ((a , b ) => a + b .element , 0 );
190
+ return pq .toArray ().reduce ((a , b ) => a + b , 0 );
192
191
}
193
192
```
194
193
Original file line number Diff line number Diff line change @@ -178,15 +178,14 @@ func (h *hp) pop() int { return heap.Pop(h).(int) }
178
178
179
179
``` ts
180
180
function minStoneSum(piles : number [], k : number ): number {
181
- const pq = new MaxPriorityQueue ();
181
+ const pq = new MaxPriorityQueue < number > ();
182
182
for (const x of piles ) {
183
183
pq .enqueue (x );
184
184
}
185
185
while (k -- ) {
186
- pq .enqueue ((pq .dequeue (). element + 1 ) >> 1 );
186
+ pq .enqueue ((pq .dequeue () + 1 ) >> 1 );
187
187
}
188
-
189
- return pq .toArray ().reduce ((a , b ) => a + b .element , 0 );
188
+ return pq .toArray ().reduce ((a , b ) => a + b , 0 );
190
189
}
191
190
```
192
191
Original file line number Diff line number Diff line change 1
1
function minStoneSum ( piles : number [ ] , k : number ) : number {
2
- const pq = new MaxPriorityQueue ( ) ;
2
+ const pq = new MaxPriorityQueue < number > ( ) ;
3
3
for ( const x of piles ) {
4
4
pq . enqueue ( x ) ;
5
5
}
6
6
while ( k -- ) {
7
- pq . enqueue ( ( pq . dequeue ( ) . element + 1 ) >> 1 ) ;
7
+ pq . enqueue ( ( pq . dequeue ( ) + 1 ) >> 1 ) ;
8
8
}
9
-
10
- return pq . toArray ( ) . reduce ( ( a , b ) => a + b . element , 0 ) ;
9
+ return pq . toArray ( ) . reduce ( ( a , b ) => a + b , 0 ) ;
11
10
}
Original file line number Diff line number Diff line change @@ -244,14 +244,14 @@ function minLengthAfterRemovals(nums: number[]): number {
244
244
for (const x of nums ) {
245
245
cnt .set (x , (cnt .get (x ) ?? 0 ) + 1 );
246
246
}
247
- const pq = new MaxPriorityQueue ();
247
+ const pq = new MaxPriorityQueue < number > ();
248
248
for (const [_, v] of cnt ) {
249
249
pq .enqueue (v );
250
250
}
251
251
let ans = nums .length ;
252
252
while (pq .size () > 1 ) {
253
- let x = pq .dequeue (). element ;
254
- let y = pq .dequeue (). element ;
253
+ let x = pq .dequeue ();
254
+ let y = pq .dequeue ();
255
255
if (-- x > 0 ) {
256
256
pq .enqueue (x );
257
257
}
You can’t perform that action at this time.
0 commit comments