标签:replace += 结果 bsp 大于 col 不可 ems 策略
https://leetcode.com/problems/kth-largest-element-in-a-stream/
这个题目的意思解读了半天,没搞明白什么意思,后来画了一下图,一下子就明了
class KthLargest: def __init__(self, k, nums): """ :type k: int :type nums: List[int] """ self.pool=nums self.size=len(self.pool) self.k=k heapq.heapify(self.pool) while self.size>k: heapq.heappop(self.pool) self.size-=1 def add(self, val): """ :type val: int :rtype: int """ if self.size<self.k: heapq.heappush(self.pool,val) self.size+=1 elif val>self.pool[0]: heapq.heapreplace(self.pool,val) return self.pool[0]
1.熟悉了一下怎么使用heapqd的常规函数
2.最后这个
if self.size<self.k:
是不是可以省略呢,size是不是不可能大于K,因为初始化的时候,数组就只有K那么大?后面用的replace,不会变大的
验证了一下,不行的:因为输入的list,有可能是空的,这样会报错,out of index
703. Kth Largest Element in a Stream
标签:replace += 结果 bsp 大于 col 不可 ems 策略
原文地址:https://www.cnblogs.com/captain-dl/p/10296536.html