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

Kiểm tra xem mảng có thể được chia thành hai mảng con sao cho sự khác biệt tuyệt đối của chúng là Ks trong Python hay không

Giả sử, chúng ta được cung cấp một mảng "input_list" chứa các số nguyên. Vấn đề đặt ra cho chúng ta là kiểm tra xem mảng đã cho có thể chia thành hai nửa hay không, trong đó hiệu của tổng hai nửa bằng một số n. Số n sẽ được cung cấp trước.

Vì vậy, nếu đầu vào giống như input_list =[9,2,5,6], n =0, thì đầu ra sẽ là "Có thể".

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

  • list_total:=tổng các giá trị của input_list
  • if (list_total - n) mod 2 giống với 1, thì
    • trả về "Không thể"
  • val:=(list_total - n) / 2
  • temp_sum:=0;
  • đối với tôi trong phạm vi từ 0 đến kích thước của input_list, hãy thực hiện
    • temp_sum:=temp_sum + input_list [i]
    • nếu temp_sum giống với val, thì
      • trả về "Có thể"
  • trả về "Không thể"

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

Ví dụ

def solve(input_list,n):
   list_total = sum(input_list)
   if (list_total - n) % 2 == 1:
      return "Not Possible"
   val = (list_total - n) / 2
   temp_sum = 0;
   for i in range (0,len(input_list)):
      temp_sum += input_list[i]
      if (temp_sum == val):
         return "Possible"
   return "Not Possible"
input_list= [9,2,5,6]
n = 0
print(solve(input_list, n))

Đầu vào

[9,2,5,6], 0

Đầu ra

Possible