python返回資料流中第n大的元素

2021-09-10 12:28:23 字數 633 閱讀 7739

import random

import heapq

#使用隨機數模擬資料流的生成

def productstreamnum():

return random.randint(1, 1000)

#使用python的heapq模組進行資料處理,當堆中元素不足n個時,直接向堆插入元素,當堆中元素為n時開始進行判斷,取堆中最小元素與新生成的隨機數比較,如果新生成的隨機數大,則彈出堆中最小元素,壓入隨機數。如果堆中元素大,則直接返回堆中元素

def findthenlargestnum(n):

heap =

for i in range(0, n+10):

randomnum = productstreamnum()

print("######"+str(randomnum)+"######")

if i < n:

elif heapq.nsmallest(1, heap)[0] < randomnum:

print(heapq.nsmallest(1, heap)[0])

else:

print(heapq.nsmallest(1, heap)[0])

findthenlargestnum(3)

返回資料流中第k大的元素 Java

設計乙個類來查詢流中第k大的元素。注意,它是排序後第k大的元素,而不是第k個不同的元素。您的kthlargest類將有乙個建構函式,它接受乙個整數k和乙個整數陣列nums,後者包含來自流的初始元素。對於每個對方法kthmaximum的呼叫。新增,返回表示流中第k大元素的元素。examples int...

資料流中的中位數python 資料流中的中位數

python用的自己實現的最大和最小堆的class,getmedian需要加個引數,否則python版會報錯。coding utf 8 最小堆 class minheap def init self self.minheap def len self return len self.minheap ...

703 資料流中的第K大元素

設計乙個找到資料流中第k大元素的類 class 注意是排序後的第k大元素,不是第k個不同的元素。你的 kthlargest 類需要乙個同時接收整數 k 和整數陣列nums 的構造器,它包含資料流中的初始元素。每次呼叫 kthlargest.add,返回當前資料流中第k大的元素。示例 int k 3 ...