Step-by-Step
[Java] Daily LeetCode Challenge 347. Top K Frequent Elements 본문
https://leetcode.com/problems/kth-largest-element-in-a-stream/
Kth Largest Element in a Stream - LeetCode
Can you solve this real interview question? Kth Largest Element in a Stream - Design a class to find the kth largest element in a stream. Note that it is the kth largest element in the sorted order, not the kth distinct element. Implement KthLargest class:
leetcode.com
HashMap으로 빈도 count 값 저장해준다!
pq로 빈도 순으로 정렬해주고, poll 해주면 됨!
[코드]
class Solution {
public int[] topKFrequent(int[] nums, int k) {
// 숫자, 횟수
HashMap<Integer, Integer> cnt = new HashMap<>();
for(int i : nums)
cnt.put(i, cnt.getOrDefault(i, 0)+1);
// 횟수 순으로 정렬
PriorityQueue<Integer> pq = new PriorityQueue<>(new Comparator<Integer>(){
@Override
public int compare(Integer i1, Integer i2){
if(cnt.get(i1)==cnt.get(i2))
return i1-i2;
return cnt.get(i2)-cnt.get(i1);
}
});
for(int key : cnt.keySet()){
pq.add(key);
}
int[] answer = new int[k];
for(int i=0; i<k; i++){
answer[i]=pq.poll();
}
return answer;
}
}
'언어 > JAVA' 카테고리의 다른 글
[LeetCode] 389. Find the Difference (0) | 2023.09.25 |
---|---|
[Java] Daily LeetCode Challenge 703. Kth Largest Element in a Stream (0) | 2023.05.23 |
[Java] Daily LeetCode Challenge 2466. Count Ways To Build Good Strings (0) | 2023.05.13 |
[Java] Daily LeetCode Challenge 1035. Uncrossed Lines (0) | 2023.05.11 |
[Java] Daily LeetCode Challenge 59. Spiral Matrix II (0) | 2023.05.10 |
Comments