检查Python数组是否可以分成两个子数组,使得它们的绝对差为K
假设我们得到一个包含整数的数组 "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
- temp_sum := 0;
- 对于 i 从 0 到 input_list 的大小,执行
- 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
广告