Skip to content

Commit bcd0ee8

Browse files
top k frequent elements solution
1 parent 6a12988 commit bcd0ee8

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import java.util.Arrays;
2+
import java.util.HashMap;
3+
import java.util.Map;
4+
5+
class SolutionTopKFrequentElements {
6+
public int[] topKFrequent(int[] nums, int k) {
7+
// ๋นˆ๋„์ˆœ์œผ๋กœ k๊ฐœ ๋ฐ˜ํ™˜
8+
// ๋นˆ๋„ ์ฒดํฌ: ํ•ด์‹œ๋งต์œผ๋กœ ์นด์šดํŠธ. ์‹œ๊ฐ„๋ณต์žก๋„ O(N), ๊ณต๊ฐ„๋ณต์žก๋„ O(N)
9+
// ๋นˆ๋„์ˆœ ์ •๋ ฌ: sorting, ์‹œ๊ฐ„๋ณต์žก๋„ O(N log N), ๊ณต๊ฐ„๋ณต์žก๋„ O(N)
10+
// ํ•ฉ์‚ฐ: ์‹œ๊ฐ„๋ณต์žก๋„ O(N log N), ๊ณต๊ฐ„๋ณต์žก๋„ O(N)
11+
12+
// ๋นˆ๋„ ์ฒดํฌ
13+
Map<Integer, Integer> freq = new HashMap<>();
14+
for (int num : nums) {
15+
freq.put(num, freq.getOrDefault(num, 0) + 1);
16+
}
17+
18+
// ๋นˆ๋„์ˆœ ์ •๋ ฌ
19+
int[] sortedNums = freq.keySet().stream()
20+
.sorted((a, b) -> freq.get(b) - freq.get(a))
21+
.mapToInt(i -> i)
22+
.toArray();
23+
24+
// ๋ฐฐ์—ด์—์„œ ์ƒ์œ„ k๊ฐœ๋งŒ ๋ฐ˜ํ™˜
25+
return Arrays.copyOf(sortedNums, k);
26+
}
27+
}

0 commit comments

Comments
ย (0)