Skip to content

Commit 43dbe8e

Browse files
committed
Create 215-Kth-Largest-Element-in-an-Array.js
1 parent d92cbba commit 43dbe8e

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} k
4+
* @return {number}
5+
*/
6+
var findKthLargest = function(nums, k) {
7+
k = nums.length - k;
8+
9+
function quickSelect(l, r) {
10+
const pivot = nums[r];
11+
let p = l;
12+
let i = l;
13+
let temp;
14+
while (i >= l && i < r) {
15+
if (nums[i] <= pivot) {
16+
temp = nums[p];
17+
nums[p] = nums[i];
18+
nums[i] = temp;
19+
p++;
20+
}
21+
22+
i++;
23+
}
24+
25+
temp = nums[p];
26+
nums[p] = nums[r];
27+
nums[r] = temp;
28+
29+
if (p > k) {
30+
return quickSelect(l, p - 1);
31+
} else if (p < k) {
32+
return quickSelect(p + 1 , r);
33+
} else {
34+
return nums[p];
35+
}
36+
}
37+
38+
return quickSelect(0, nums.length - 1);
39+
};

0 commit comments

Comments
 (0)