最大化集合中负数的两个子集之间的差异,在C中实现

最大化集合中负数的两个子集之间的差异,在C中实现

负数子集 { -2, -3, -4 } 的总和为-9

最大差异将为30 - (-9) = 39

输入 − Arr[] = { -5, -15, -3, -2, 10, 20, 15 }

输出 − 两个子集之间的最大差异 − 70

解释 − 正数子集 { 10, 20, 15 } 的总和为45

负数子集 { -5, -15, -3, -2 } 的总和为-25

最大差异将为45 - (-25) = 70

以下程序的方法如下

  • 我们使用一个由正数和负数组成的整数数组 Arr[]

  • 函数 subsetDifference( int arr[],int n) 是用来找到负数和正数子集之间的最大差异的。它接受两个参数,一个是数组本身,另一个是它的大小 n。

  • 使用变量 sum=0 来存储数组的所有元素的总和。

  • 从左边开始,使用 for 循环遍历数组的每个元素 ( i=0;i