Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem một mảng 1 và 2 có thể được chia thành 2 phần với tổng bằng nhau hay không trong Python

Giả sử chúng ta có một số mảng chỉ lưu trữ 1 và 2 trong đó. Chúng ta phải kiểm tra xem mảng có thể được chia thành hai phần khác nhau sao cho tổng các phần tử trong mỗi phần là như nhau hay không.

Vì vậy, nếu đầu vào là nums =[1, 1, 2, 2, 2], thì đầu ra sẽ là True vì chúng ta có thể chia mảng này như [1, 1, 2] và [2, 2] thành tổng của mỗi phần là 4.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • tổng số:=0, one_count:=0
  • total:=tổng của tất cả các phần tử của nums
  • one_count:=đếm 1s tính bằng nums
  • nếu tổng số là số chẵn thì
    • trả về Sai
  • nếu phần nguyên của (tổng / 2) là chẵn, thì
    • trả về True
  • nếu one_count> 0, thì
    • trả về True
  • nếu không,
    • trả về Sai

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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))

Đầu vào

[1, 1, 2, 2, 2]

Đầu ra

True