色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 最小k個數(shù)

錢浩然2年前9瀏覽0評論

Python是一種強大的編程語言,被廣泛應(yīng)用于數(shù)據(jù)處理和科學(xué)計算等領(lǐng)域。其中,求解最小的K個數(shù)也是Python中一個比較常見的問題。下面我們將介紹幾種不同的Python實現(xiàn),幫助大家快速求解最小的K個數(shù)。

# 方法一:sorted函數(shù)
arr = [3, 1, 4, 2, 5, 7, 6]
k = 3
res = sorted(arr)[:k]
print(res)
# 方法二:heapq模塊
import heapq
arr = [3, 1, 4, 2, 5, 7, 6]
k = 3
res = heapq.nsmallest(k, arr)
print(res)
# 方法三:手寫最小堆
class MinHeap:
def __init__(self, k):
self.heap = []
self.capacity = k
def push(self, val):
if len(self.heap)< self.capacity:
heapq.heappush(self.heap, -val)
else:
if -val >self.heap[0]:
heapq.heappop(self.heap)
heapq.heappush(self.heap, -val)
def get_min_k(self):
return [-val for val in self.heap]
arr = [3, 1, 4, 2, 5, 7, 6]
k = 3
heap = MinHeap(k)
for val in arr:
heap.push(val)
res = heap.get_min_k()
print(res)

以上就是三種不同的Python實現(xiàn)方法。方法一和方法二都比較簡單,使用Python內(nèi)置的函數(shù)和模塊即可。方法三是手寫最小堆,需要用到heapq模塊。任何一種方法都可以用來解決求最小K個數(shù)的問題,大家可以根據(jù)實際情況選擇適合自己的方法。