File tree Expand file tree Collapse file tree 1 file changed +50
-0
lines changed Expand file tree Collapse file tree 1 file changed +50
-0
lines changed Original file line number Diff line number Diff line change 1+ class PriorityQueue {
2+ constructor ( ) {
3+ this . items = [ ] ;
4+ }
5+
6+ enqueue ( item ) {
7+ for ( let i = 0 ; i < this . items . length ; i ++ ) {
8+ if ( this . items [ i ] < item ) {
9+ this . items . splice ( i , 0 , item ) ;
10+ return ;
11+ }
12+ }
13+
14+ this . items . push ( item ) ;
15+ }
16+
17+ dequeue ( ) {
18+ return this . items . pop ( ) ;
19+ }
20+
21+ peek ( ) {
22+ console . log ( this . items ) ;
23+ }
24+
25+ print ( ) {
26+ console . log ( this . items ) ;
27+ }
28+
29+ length ( ) {
30+ return this . items . length ;
31+ }
32+ }
33+
34+ const findKthLargestNum = ( nums , k ) => {
35+ const queue = new PriorityQueue ( ) ;
36+ nums . forEach ( num => {
37+ if ( queue . length ( ) < k ) {
38+ queue . enqueue ( num ) ;
39+ return ;
40+ }
41+
42+ queue . enqueue ( num ) ;
43+ queue . dequeue ( ) ;
44+ } ) ;
45+ queue . peek ( ) ;
46+ return queue . dequeue ( ) ;
47+ }
48+
49+ const nums = [ 6 , 3 , 7 , 4 ] ;
50+ findKthLargestNum ( nums , 2 ) ;
You can’t perform that action at this time.
0 commit comments