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