检查给定数组是否可以通过给定次数的操作在 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.