已知数组含有n个元素,请将这n个元素划分为两个数组,使得两个数组的元素之和sum1,sum2之间的差值m最小,输出划分好的数组。例如原始数组
int arr[]={1,1,3,5,7,3}
那么划分出来的两个数组分别是
int arr1[]={3,7}
int arr2[]={1,1,3,5}
这样就可以使差值达到最小值0
2 回答
rookie_cainiao3830141
TA贡献11条经验 获得超0个赞
我说一下我的思路。先求出原始数组元素和的二分之一,然后对元素数组的元素进行分配(这个方法特别麻烦)相加,与那个二分之一的数比较,留下最接近的一组。加之前,对原数组进行排序,然后从最大值开始进行加判断。对于小数组还可以,对大数组就不适合了。仅供参考
添加回答
举报
0/150
提交
取消