İçeriğe atla
Kod OkumaEn Küçük k Tane
AI'yı Denetle

En Küçük k Tane

Üç çözüm, biri tekrar eden sayılarda yanılıyor. Etiketle.

Problem

k_smallest(values, k): en küçük k sayıyı küçükten büyüğe liste olarak döndür. Tekrar eden sayılar ayrı ayrı sayılır: [3, 1, 1, 2], k = 2 → [1, 1].

Çözüm A

1def k_smallest(values, k):
2 return sorted(set(values))[:k]

Çözüm B

1def k_smallest(values, k):
2 values = list(values)
3 out = []
4 for _ in range(k):
5 m = min(values)
6 values.remove(m)
7 out.append(m)
8 return out

Çözüm C

1import heapq
2
3def k_smallest(values, k):
4 return heapq.nsmallest(k, values)