检查数组是否可以分为两个子数组,使得它们的绝对差在 Python 中为 Ks

假设,我们提供了一个包含整数的数组“input_list”。给我们的问题是检查给定的数组是否可以分成两半,其中两半之和的差等于一个数 n。数字 n 将预先提供。

因此,如果输入类似于 input_list= [9,2,5,6], n = 0,那么输出将是“可能的”。

为了解决这个问题,我们将按照以下步骤操作 -

  • list_total := input_list 的值的总和

  • 如果 (list_total - n) mod 2 与 1 相同,则

    • 返回“不可能”

  • val := (list_total - n) / 2

  • 温度总和:= 0;

  • 对于范围 0 到 input_list 大小的 i,请执行

    • 返回“可能”

    • temp_sum := temp_sum + input_list[i]

    • 如果 temp_sum 与 val 相同,则

  • 返回“不可能”

让我们看看以下实现以获得更好的理解 -

示例

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

输入

[9,2,5,6], 0
输出结果
Possible

猜你喜欢