Menu
CoddyTech

Chocolate Distribution Problem

Bạn có một số gói sô-cô-la, trong đó packets[i] là số viên sô-cô-la trong gói thứ i. Mỗi học sinh trong số m học sinh nhận đúng một gói, nên sẽ phát ra m gói khác nhau. Hãy chọn các gói sao cho chênh lệch giữa gói nhiều viên nhất và gói ít viên nhất được phát ra là nhỏ nhất có thể.

Viết một hàm có tên minDifference trả về chênh lệch nhỏ nhất có thể đó.

Hàm

minDifference(packets: integer-array, m: integer) → integer
packetsinteger-array
số viên sô cô la trong mỗi gói
minteger
số học sinh, mỗi em nhận một gói
Trả vềinteger
chênh lệch nhỏ nhất có thể giữa gói lớn nhất và gói nhỏ nhất được phát

Ràng buộc

  • 2 ≤ m ≤ packets.length ≤ 104
  • 1 ≤ packets[i] ≤ 105
  • Hai gói có thể đựng cùng số lượng sô-cô-la.

Ví dụ

Đầu vào
packets = [9, 3, 15, 7, 11, 4]m = 3
Đầu ra
4
Giải thích
Sau khi sắp xếp, các gói hàng là 3, 4, 7, 9, 11 và 15. Cả 3, 4, 7 lẫn 7, 9, 11 đều có hiệu bằng 4, và không có bộ ba gói hàng nào gần nhau hơn.
Đặt lại code
def minDifference(packets, m):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

packets = [9, 3, 15, 7, 11, 4]
m = 3

Đầu ra mong đợi

4