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)