Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm số phần tử tối thiểu cần thêm để đạt tổng mục tiêu trong Python


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