**Difficulty: Medium**

**Frequency: N/A**

Find the **k**th largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.

For example,

Given `[3,2,1,5,6,4]`

and k = 2, return 5.

**Note: **

You may assume k is always valid, 1 ≤ k ≤ array’s length.

**My solution:**

**Data structure:**

**Steps:**

**Complexity:**

**Test cases:**

**Corner cases:**

**Code:**

class Solution { public: int findKthLargest(vector<int>& nums, int k) { priority_queue<int> q; for (int n : nums) q.push(n); for (int i = 1; i < k; i++) q.pop(); return q.top(); } };

**Another solution:**

**Data structure:**

**steps:**

**Complexity**:

**Code**:

**Things to learn:**