Python程序:查找达到目标和所需的最少元素添加


假设我们有一个名为nums的数字列表以及另外两个变量k和t。我们考虑一个操作,在这个操作中,我们选择一个范围在[-k, k]内的元素e,并将其插入到nums的末尾。我们必须找到所需的操作次数最小值,以便nums的总和等于目标值。

因此,如果输入类似于nums = [3, 1] k = 4 t = 19,则输出将为4,因为我们可以添加[3, 1, 4, 4, 4, 3]来获得总和19。

为了解决这个问题,我们将遵循以下步骤:

  • total := nums中所有元素的总和

  • diff := |t - total|

  • result := floor(diff/k)

  • 如果result * k不等于diff,则

    • result := result + 1

  • 返回result

示例

让我们看看下面的实现来更好地理解。

def solve(nums, k, t):
   total = sum(nums)

   diff = abs(t - total)
   result = diff // k

   if result * k != diff:
      result = result + 1

   return result

nums = [3, 1]
k = 4
t = 19
print(solve(nums, k, t))

输入

[3, 1], 4, 19

输出

4

更新于:2021年10月11日

222 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告