Skip to content

Commit e1e587e

Browse files
authored
Update Solution.go
1 parent 76dd4eb commit e1e587e

File tree

1 file changed

+27
-27
lines changed
  • solution/0200-0299/0215.Kth Largest Element in an Array

1 file changed

+27
-27
lines changed
Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
11
func findKthLargest(nums []int, k int) int {
2-
n := len(nums)
3-
return quickSort(nums, 0, n-1, n-k)
4-
}
5-
6-
func quickSort(nums []int, left, right, k int) int {
7-
if left == right {
8-
return nums[left]
9-
}
10-
i, j := left-1, right+1
11-
x := nums[(left+right)>>1]
12-
for i < j {
13-
for {
14-
i++
15-
if nums[i] >= x {
16-
break
17-
}
2+
k = len(nums) - k
3+
var quickSort func(l, r int) int
4+
quickSort = func(l, r int) int {
5+
if l == r {
6+
return nums[l]
187
}
19-
for {
20-
j--
21-
if nums[j] <= x {
22-
break
8+
i, j := l-1, r+1
9+
x := nums[(l+r)>>1]
10+
for i < j {
11+
for {
12+
i++
13+
if nums[i] >= x {
14+
break
15+
}
16+
}
17+
for {
18+
j--
19+
if nums[j] <= x {
20+
break
21+
}
22+
}
23+
if i < j {
24+
nums[i], nums[j] = nums[j], nums[i]
2325
}
2426
}
25-
if i < j {
26-
nums[i], nums[j] = nums[j], nums[i]
27+
if j < k {
28+
return quickSort(j+1, r)
2729
}
30+
return quickSort(l, j)
2831
}
29-
if j < k {
30-
return quickSort(nums, j+1, right, k)
31-
}
32-
return quickSort(nums, left, j, k)
33-
}
32+
return quickSort(0, len(nums)-1)
33+
}

0 commit comments

Comments
 (0)