ให้อาร์เรย์ A และ k เลือก k ตัวจาก A สร้าง arr ให้ max(arr) - min(arr) น้อยที่สุด (Unfairness)
ตัวอย่าง: A=[25,120,350,150,2500,25,35], k=3 → 10 (เลือก [25,25,35] → 35-25=10)
ขั้นตอน (Sort + Sliding Window)
- เรียง
A - Sliding Window ขนาด
kหาmin(A[i+k-1] - A[i])
ตัวอย่างโค้ด
def solve(A, k):
i = 0
A.sort()
n = len(A)
m = A[n-1]
while i < n - k:
if A[i+k-1] - A[i] < m:
m = A[i+k-1] - A[i]
i += 1
return m
A = [25, 120, 350, 150, 2500, 25, 35]
k = 3
print(solve(A, k)) # Output: 10อินพุต
[25, 120, 350, 150, 2500, 25, 35]
เอาต์พุต
10