Skip to content

Instantly share code, notes, and snippets.

@mkmojo
Created May 31, 2016 21:25
Show Gist options
  • Save mkmojo/e090a1b20bdbc5a3efa9eb0c07f61d81 to your computer and use it in GitHub Desktop.
Save mkmojo/e090a1b20bdbc5a3efa9eb0c07f61d81 to your computer and use it in GitHub Desktop.
Find the kth largest number in an Array
class Solution:
# @param k & A a integer and an array
# @return ans a integer
def kthLargestElement(self, k, A):
return self.helper(A, 0, len(A) - 1, k)
def helper(self, arr, begin, end, k):
pos = self.partition(arr, begin, end)
if pos == len(arr) - k:
return arr[pos]
elif pos > len(arr) - k:
return self.helper(arr, begin, pos - 1, k)
else:
return self.helper(arr, pos + 1, end, k)
def partition(self, arr, begin, end):
pos = begin
for i in range(begin, end):
if arr[i] < arr[end]:
arr[i], arr[pos] = arr[pos], arr[i]
pos += 1
arr[pos], arr[end] = arr[end], arr[pos]
return pos
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment