File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change 1+
2+ class Solution {
3+ public int [] topKFrequent (int [] nums , int k ) {
4+ Map <Integer , Integer > map = new HashMap <>();
5+ for (int num : nums ) {
6+ map .put (num , map .getOrDefault (num , 0 ) + 1 );
7+ }
8+
9+ PriorityQueue <Map .Entry <Integer , Integer >> queue = new PriorityQueue <>(
10+ (a , b ) -> Integer .compare (b .getValue (), a .getValue ())
11+ );
12+
13+ for (Map .Entry <Integer , Integer > entry : map .entrySet ()) {
14+ queue .offer (entry );
15+ }
16+
17+ int [] res = new int [k ];
18+
19+ for (int i = 0 ; i < k ; i ++) {
20+ res [i ] = queue .poll ().getKey ();
21+ }
22+
23+ return res ;
24+ }
25+ }
26+
27+ // time : O(n) + O(m log m) + O(k log m) = O(n + m*logm + k*logm)
28+ //
29+ // ์ต์
์ ๊ฒฝ์ฐ n log n ์ด ๋ ์ ์์
30+ // space : O(m) + O(m) + O(k) = O(m + k)
31+ // ์ต์
์ ๊ฒฝ์ฐ n + k ๊ฐ ๋ ์ ์์
32+
33+ // n : nums์ ๊ธธ์ด
34+ // m : nums์์ ์๋ก ๋ค๋ฅธ ์ซ์์ ๊ฐ์
35+
You canโt perform that action at this time.
0 commit comments