检查数组是否可以分为两个子数组,使得它们的绝对差在 Python 中为 Ks
假设,我们提供了一个包含整数的数组“input_list”。给我们的问题是检查给定的数组是否可以分成两半,其中两半之和的差等于一个数n。数字n将预先提供。
因此,如果输入类似于input_list=[9,2,5,6],n=0,那么输出将是“可能的”。
为了解决这个问题,我们将按照以下步骤操作-
list_total:=input_list的值的总和
如果(list_total-n)mod2与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