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 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.