- 数组中的第K个最大元素
在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
class Solution:
def findKthLargest(self, nums: List[int], k: int) -> int:
"""
:type nums: List[int]
:type k: int
:rtype: int
"""
nums.sort()
return nums[-k]
- 存在重复元素
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
"""
:type nums: List[int]
:rtype: bool
"""
dic=collections.Counter(nums)
for value in dic.values():
if value>=2:
return True
return False
- 二叉搜索树中第K小的元素
给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。
说明:
你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。
class Solution:
def kthSmallest(self, root: TreeNode, k: int) -> int:
"""
:type root: TreeNode
:type k: int
:rtype: int
"""
def inorderTraversal(node):
if not node:
return []
return inorderTraversal(node.left) + [node.val] + inorderTraversal(node.right)
l = inorderTraversal(root)
return l[k - 1]