Leetcode/LeetCode75

[Heap/Priority Queue][Medium] 215. Kth Largest Element in an Array

자전거통학 2024. 1. 2. 08:16

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

 

Kth Largest Element in an Array - LeetCode

Can you solve this real interview question? Kth Largest Element in an Array - Given an integer array nums and an integer k, return the kth largest element in the array. Note that it is the kth largest element in the sorted order, not the kth distinct eleme

leetcode.com

 

Q. 해당 주어진 배열에서 k 번째로 큰 원소를 반환하라.

 

Solution. 

 Max Heap을 사용.

 

int findKthLargest(vector<int>& nums, int k) 
{        
    priority_queue<int> pqBuff;
    for (int k = 0; k < nums.size(); ++k)
    {
        pqBuff.push(nums[k]);
    }

    while (!pqBuff.empty())
    {
        int top = pqBuff.top();
        --k;

        if (k == 0)
            return top;

        pqBuff.pop();
    }
    return -1;
}

 

stl::sort()를 사용한 것은 아니지만, 선 구현된 자료구조를 사용했다. 

문제의 취지에 맞는지 조금은 애매하다. 

 

다른 풀이법도 알아 두면 좋을 듯.