题目要求:思路:维护一个小根堆(父节点的值小于等于子节点的值),小根堆的节点数为k,保持一个rootlet总有k个元素.遍历数组,将当前元素加入堆中,加入后判断堆中的节点个数,如果大于k,取出最小的元素从堆中删除,使得剩余元素在堆中堆总是最大的k个元素,堆顶是这些数中最小的,也就是第k大的元素。Pythonheapq参考:https://docs.python.org/zh-tw...核心代码:#小根堆使用数组代替res=[]#遍历数组foriinnums:#添加当前元素到堆,保留一个小的根堆heapq.heappush(res,i)#如果堆中的元素个数,即数组的长度大于kiflen(res)>k:#取出堆顶元素,即取出堆中最小的元素heapq.heappop(res)#如果res不为空,返回res[0],如果res为空,表示初始数组为空,返回Nonereturnres[0]ifreselseNone完整代码:类解决方案:deffindKthLargest(self,nums:List[int],k:int)->int:res=[]foriinnums:heapq.heappush(res,i)iflen(res)>k:heapq.heappop(res)returnres[0]ifreselseNone
