File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number[] } nums
3+ * @param {number } k
4+ * @return {number[] }
5+ */
6+ var topKFrequent = function ( nums , k ) {
7+ let map = new Map ( ) ;
8+ let res = [ ] ;
9+ let bucket = new Array ( nums . length + 1 ) ;
10+
11+ // storing frequency of numbers in a map
12+ for ( let n of nums ) {
13+ map . set ( n , ( map . has ( n ) ? 1 + map . get ( n ) : 1 ) )
14+ }
15+
16+ // Poppulate the bucket with numbers in frequency
17+ // as the index of the bucket
18+ for ( let [ key , value ] of map . entries ( ) ) {
19+ if ( ! Array . isArray ( bucket [ value ] ) ) {
20+ bucket [ value ] = [ ] ;
21+ }
22+ bucket [ value ] . push ( key ) ;
23+ }
24+
25+ for ( let i = bucket . length - 1 ; i >= 0 ; i -- ) {
26+ if ( Array . isArray ( bucket [ i ] ) ) {
27+ for ( let n of bucket [ i ] ) {
28+ res . push ( n ) ;
29+ if ( res . length === k )
30+ return res ;
31+ }
32+ }
33+ }
34+ } ;
You can’t perform that action at this time.
0 commit comments