1. 程式人生 > 其它 >Leetcode習題陣列中的第K個最大值

Leetcode習題陣列中的第K個最大值

技術標籤:力扣leetcode演算法python

陣列中的第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]