欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python 最小k個數

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

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

# 方法一:sorted函數
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實現方法。方法一和方法二都比較簡單,使用Python內置的函數和模塊即可。方法三是手寫最小堆,需要用到heapq模塊。任何一種方法都可以用來解決求最小K個數的問題,大家可以根據實際情況選擇適合自己的方法。