Cho mảng nums và hai giá trị limit, goal. Mảng đặc biệt: |nums[i]| ≤ limit. Tìm số phần tử tối thiểu cần chèn để tổng mảng = goal. Phần tử chèn không vượt quá limit.
Ví dụ: nums = [2,-2,2], limit = 3, goal = -4, đầu ra = 2 (thêm hai -3).
Giải pháp
Tính chênh lệch tuyệt đối giữa goal và tổng hiện tại, chia cho limit, làm tròn lên:
- s := sum(nums)
- ab := |goal - s|
- Trả về ceil(ab / limit)
Ví dụ minh họa
Xem triển khai sau để hiểu rõ hơn:
from math import ceil
def solve(nums, limit, goal):
s = sum(nums)
ab = abs(goal - s)
return ceil(ab / limit)
nums = [2,-2,2]
limit = 3
goal = -4
print(solve(nums, limit, goal))
Đầu vào
[2,-2,2], 3, -4
Đầu ra
2