检查数组是否有一个元素等于 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