Check if array can be divided into two sub-arrays such that their absolute difference is Ks in Python


Suppose, we are provided with an array "input_list" containing integer numbers. The problem given to us is to check if the given array can be divided into two halves, where the difference of the sum of two halves is equal to a number n. The number n will be provided beforehand.

So, if the input is like input_list= [9,2,5,6], n = 0, then the output will be “Possible”.

To solve this, we will follow these steps −

  • list_total := sum of the values of input_list
  • if (list_total - n) mod 2 is same as 1, then
    • return "Not Possible"
  • val := (list_total - n) / 2
  • temp_sum := 0;
  • for i in range 0 to size of input_list, do
    • temp_sum := temp_sum + input_list[i]
    • if temp_sum is same as val, then
      • return "Possible"
  • return "Not Possible"

Let us see the following implementation to get better understanding −

Example

 Live Demo

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

Input

[9,2,5,6], 0

Output

Possible

Updated on: 30-Dec-2020

61 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements