检查Python中1和2的数组是否可以分为相等相等的2个部分

假设我们有一个仅存储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

猜你喜欢