class Solution {
public int findKthLargest(int[] nums, int k) {
PriorityQueue<Integer> priorityQueue=new PriorityQueue<>(Collections.reverseOrder());
for (int i=0; i<nums.length; i++){
priorityQueue.add(nums[i]);
}
for (int i=0; i<k-1; i++){
priorityQueue.remove();
}
return priorityQueue.poll();
}
}
sort를 쓰지 않고 큰수에서 k번째 구하기,
poll과 add사용해서 풀었다.
Collections.reverseOrder()를 사용해서 큰 순서대로 정렬이 되도록 만들었다.
add를 사용하면 알아서 정렬이 되고 remove를 사용하면 앞에서 부터 제거가 된다.
poll은 리턴과 remove를 함께 해준다.
heap
힙은 '최솟값 또는 최댓값을 빠르게 찾아내기 위해 완전이진트리 형태로 만들어진 자료구조'이다.
다음에 더 자세히 알아보자
'코테' 카테고리의 다른 글
48. Rotate Image (1) | 2024.02.06 |
---|---|
[leetcode bfs] 199. Binary Tree Right Side View (0) | 2024.01.04 |