数组中的第K个最大值
class Solution :
def findKthLargest ( self, nums: List[ int ] , k: int ) - > int :
n= len ( nums)
target= n- k
left= 0
right= n- 1
while True :
index= self. partition( nums, left, right)
if index== target:
return nums[ index]
elif index< target:
left= index+ 1
else :
right= index- 1
def partition ( self, nums, left, right) :
pivot= nums[ left]
i= left
for j in range ( left+ 1 , right+ 1 ) :
if nums[ j] < pivot:
i+= 1
nums[ j] , nums[ i] = nums[ i] , nums[ j]
nums[ left] , nums[ i] = nums[ i] , nums[ left]
return i
存在重复元素
```python
class Solution :
def containsDuplicate ( self, nums: List[ int ] ) - > bool :
return len ( nums) != len ( set ( nums) )
二叉搜索树中的第K小的元素
class Solution :
def kthSmallest ( self, root: TreeNode, k: int ) - > int :
def inorder ( r) :
return inorder( r. left) + [ r. val] + inorder( r. right) if r else [ ]
return inorder( root) [ k- 1 ]