假设我们有一个仅存储1和2的数组nums。我们必须检查数组是否可以分为两个不同的部分,以使每个部分中的元素总和相同。
因此,如果输入像nums = [1,1,2,2,2],则输出将为True,因为我们可以像[1,1,2]和[2,2]一样划分此数组。每个部分是4。
为了解决这个问题,我们将遵循以下步骤-
总计:= 0,one_count:= 0
总数:= num的所有元素的总和
one_count:=以1为单位的计数
如果总数是偶数,则
返回False
如果(total / 2)的整数部分是偶数,则
返回True
如果one_count> 0,则
返回True
除此以外,
返回False
让我们看下面的实现以更好地理解-
def solve(nums): total = 0 one_count = 0 total = sum(nums) one_count = nums.count(1) if total % 2: return False if (total // 2)%2 == 0: return True if one_count > 0: return True else: return False nums = [1, 1, 2, 2, 2] print(solve(nums))
[1, 1, 2, 2, 2]输出结果
True