[leetcode] 215. Kth Largest Element in an Array

题目:

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

Example 1:

Input: [3,2,1,5,6,4] and k = 2
Output: 5

Example 2:

Input: [3,2,3,1,2,4,5,5,6] and k = 4
Output: 4

Note: 

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

思路:

1.先排序再找第k个

2.用优先队列,不用排序。

代码:

Python排序:

class Solution:
    def findKthLargest(self, nums, k):
        """
        :type nums: List[int]
        :type k: int
        :rtype: int
        """
        nums.sort(reverse=True)
        return nums[k-1]
C++:堆:
#include<queue>
class Solution {
public:
    int findKthLargest(vector<int>& nums, int k) {
        priority_queue<int> que;
        for(int i = 0; i < nums.size(); i++){
            que.push(nums[i]);
        }
        for(int i = 0; i < k - 1; i++){
            que.pop();
        }
        return que.top();
    }
};

猜你喜欢

转载自blog.csdn.net/jing16337305/article/details/80227959