检查数组是否有一个元素等于 Python 中所有剩余元素的总和

假设我们有一个名为 nums 的数组,我们必须检查该数组是否包含一个元素,其值与所有其他元素的总和相同。

因此,如果输入类似于 nums = [3,2,10,4,1],那么输出将为 True,10 = (3+2+4+1)。

为了解决这个问题,我们将按照以下步骤操作 -

  • freq := 空映射

  • 总计:= 0

  • 对于范围 0 到 nums - 1 大小的 i,请执行

    • 频率[nums[i]] := 频率[nums[i]] + 1

    • 总计 := 总计 + nums[i]

  • 如果总数是偶数,那么

    • 返回真

    • 如果 freq[(total / 2)] 的商不为零,则

  • 返回错误

让我们看看以下实现以获得更好的理解 -

示例代码

from collections import defaultdict

def solve(nums):

   freq = defaultdict(int)

   total = 0

   for i in range(len(nums)):

      freq[nums[i]] += 1

      total += nums[i]

     

   if total % 2 == 0:

      if freq[total // 2]:

         return True

   return False

 

nums = [3,2,10,4,1]

print(solve(nums))

输入

[3,2,10,4,1]
输出结果
True

以上是 检查数组是否有一个元素等于 Python 中所有剩余元素的总和 的全部内容, 来源链接: utcz.com/z/356518.html

回到顶部