@@ -43,40 +43,40 @@ public int[] topKFrequent(int[] nums, int k) {
43
43
// Runtime : 19ms Beats 8.16%
44
44
// Memory : 49.00MB Beats 20.01%
45
45
// Stream에 익숙해지기 위해 공부용
46
- return Arrays .stream (nums )
47
- .boxed ()
48
- .collect (Collectors .groupingBy (num -> num , Collectors .summingInt (num -> 1 )))
49
- .entrySet ().stream ()
50
- .sorted ((a , b ) -> b .getValue () - a .getValue ())
51
- .limit (k )
52
- .mapToInt (Map .Entry ::getKey )
53
- .toArray ();
46
+ return Arrays .stream (nums )
47
+ .boxed ()
48
+ .collect (Collectors .groupingBy (num -> num , Collectors .summingInt (num -> 1 )))
49
+ .entrySet ().stream ()
50
+ .sorted ((a , b ) -> b .getValue () - a .getValue ())
51
+ .limit (k )
52
+ .mapToInt (Map .Entry ::getKey )
53
+ .toArray ();
54
54
55
55
// (3) Array List
56
56
// 시간복잡도 : O(N)
57
57
// Runtime : 13ms Beats 75.77%
58
58
// Memory : 48.44MB Beats 61.68%
59
- Map <Integer , Integer > frequencyMap = new HashMap <>();
60
- for (int num : nums ) {
61
- frequencyMap .put (num , frequencyMap .getOrDefault (num , 0 ) + 1 );
62
- }
59
+ Map <Integer , Integer > frequencyMap = new HashMap <>();
60
+ for (int num : nums ) {
61
+ frequencyMap .put (num , frequencyMap .getOrDefault (num , 0 ) + 1 );
62
+ }
63
63
64
- List <Integer >[] buckets = new List [nums .length + 1 ];
65
- for (int key : frequencyMap .keySet ()) {
66
- int freq = frequencyMap .get (key );
67
- if (buckets [freq ] == null ) {
68
- buckets [freq ] = new ArrayList <>();
69
- }
70
- buckets [freq ].add (key );
71
- }
64
+ List <Integer >[] buckets = new List [nums .length + 1 ];
65
+ for (int key : frequencyMap .keySet ()) {
66
+ int freq = frequencyMap .get (key );
67
+ if (buckets [freq ] == null ) {
68
+ buckets [freq ] = new ArrayList <>();
69
+ }
70
+ buckets [freq ].add (key );
71
+ }
72
72
73
- List <Integer > result = new ArrayList <>();
74
- for (int i = buckets .length - 1 ; i >= 0 && result .size () < k ; i --) {
75
- if (buckets [i ] != null ) {
76
- result .addAll (buckets [i ]);
77
- }
78
- }
73
+ List <Integer > result = new ArrayList <>();
74
+ for (int i = buckets .length - 1 ; i >= 0 && result .size () < k ; i --) {
75
+ if (buckets [i ] != null ) {
76
+ result .addAll (buckets [i ]);
77
+ }
78
+ }
79
79
80
- return result .stream ().mapToInt (Integer ::intValue ).toArray ();
80
+ return result .stream ().mapToInt (Integer ::intValue ).toArray ();
81
81
}
82
- }
82
+ }
0 commit comments