# #5 Kth Largest Element

Find K-th largest element in an array.

##### Notice

You can swap elements in the array

Example

In array [9,3,2,4,8], the 3rd largest element is 4.

In array [1,2,3,4,5], the 1st largest element is 5, 2nd largest element is 4, 3rd largest element is 3 and etc.

Challenge

O(n) time, O(1) extra memory.

Mycode（AC ＝ 82ms）：

class Solution {
public:
/*
* param k : description of k
* param nums : description of array and index 0 ~ n-1
* return: description of return
*/
int kthLargestElement(int k, vector<int> nums) {
if (nums.size() == 0) return 0;

kthLargestElement(k, nums, 0, nums.size() - 1);
return nums[k - 1];
}

void kthLargestElement(int& k,
vector<int>& nums,
int start,
int end)
{
if (start >= end) return;

int pivot = findPivot(nums, start, end);
if (pivot > k) {
kthLargestElement(k, nums, start, pivot - 1);
}
else if (pivot < k) {
kthLargestElement(k, nums, pivot + 1, end);
}
else {
return;
}
}

int findPivot(vector<int>& nums, int start, int end) {
if (start == end) return start;

int pivot = nums[end];
int l = start, r = end;
while (l < r) {
while (l < r && nums[l] >= pivot) {
l++;
}
nums[r] = nums[l];

while (l < r && nums[r] <= pivot) {
r--;
}
nums[l] = nums[r];
}

nums[l] = pivot;
return l;
}
};

• 本文已收录于以下专栏：

## 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 so...
• sunao2002002
• 2015年05月27日 00:11
• 3222

## LeetCode215: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 so...
• u012501459
• 2015年07月09日 21:36
• 950

## leetcode 215: Kth Largest Element in an Array

leetcode 215: Kth Largest Element in an Array
• xudli
• 2015年05月29日 08:47
• 10626

## 215. Kth Largest Element in an Array-Python

• daigualu
• 2017年07月07日 17:42
• 556

## 【LeetCode-面试算法经典-Java实现】【215-Kth Largest Element in an Array（数组中第K大的数）】

【215-Kth Largest Element in an Array（数组中第K大的数）】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github...
• DERRANTCM
• 2015年08月28日 06:57
• 4323

## Lintcode - kth largest element

Find K-th largest element in an array. Note You can swap elements in the array Example In arra...
• nicaishibiantai
• 2015年01月30日 12:07
• 1486

## leetcode 215 Kth Largest Element in an Array C++

• a2331046
• 2016年12月05日 15:54
• 315

## LeetCode OJ 215. Kth Largest Element in an Array 堆排序求解

• bruce128
• 2016年02月23日 14:00
• 1805

## 算法课第16周第1题—— 215. Kth Largest Element in an Array

• bwstardust
• 2017年06月11日 22:56
• 95

## [leetcode] 215. Kth Largest Element in an Array 解题报告

• qq508618087
• 2016年02月21日 07:29
• 1070

举报原因： 您举报文章：#5 Kth Largest Element 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)