Мой вопрос заключается в решении в leetcode ниже, я не могу понять, почему это O(k+(nk)log(k))
.
Дополнение: Может быть, сложность не в том, что на самом деле я не знаю временную сложность heappush()
и heappop()
# O(k+(n-k)lgk) time, min-heap
def findKthLargest(self, nums, k):
heap = []
for num in nums:
heapq.heappush(heap, num)
for _ in xrange(len(nums)-k):
heapq.heappop(heap)
return heapq.heappop(heap)