檢查給定陣列是否可以透過給定次數的操作在 Python 中減少到零


假設我們有一個數組 nums 和一個值 k,我們必須檢查 nums 中的元素是否可以透過執行以下操作恰好 k 次來變為 0。

  • 操作:從 nums 的所有非零值中減去 nums 中最小的元素。

因此,如果輸入類似於 nums [2, 2, 3, 5] k = 3,則輸出將為 True,因為首先從陣列中刪除 2,所以陣列將為 [0, 0, 1, 3],然後刪除 1 以獲得 [0, 0, 0, 2],然後再次刪除 2 以獲得 [0, 0, 0, 0]。

為了解決這個問題,我們將遵循以下步驟 -

  • 如果存在 k 個不同的元素,則
  • 返回 True
  • 返回 False

讓我們看看以下實現以獲得更好的理解 -

示例程式碼

線上演示

def solve(nums, k):
   distinct = set(nums)
 
   if len(distinct) == k:
      return True
   return False
   
nums = [2, 2, 3, 4]
k = 3
print(solve(nums, k))

輸入

[2, 2, 3, 4], 3

輸出

True

更新於: 2021年1月15日

86 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.