Leetcode/NeetCode

[PriorityQueue][Medium] 215. Kth Largest Element in an Array

자전거통학 2024. 7. 20. 20:20

https://leetcode.com/problems/kth-largest-element-in-an-array/description/

 

주어진 정수 배열에서 k 번째로 큰 수를 찾아라.

 

k번째로 큰 수는 

minPriority Queue 에 배열을 넣고, 

큐 사이즈가 k 가 될때까지 큐를 pop한다. 

그리되면 사이즈 k 보다 작은 값들은 pop되고 

k 개수 만큼 큰 값들만 남게 된다. 

 

그 중 top이 k 번째로 큰 값이 된다. 

 

코드 

int findKthLargest(vector<int>& nums, int k) 
{
   priority_queue<int, vector<int>, greater<int> > minPQ;

    for (int q = 0; q < nums.size(); ++q)
        minPQ.push(nums[q]);

    while (minPQ.size() > k)
        minPQ.pop();

    return minPQ.top();
}

 

 

 

결과