将一个数组划分为两个数组满足以下要求。

已知数组含有n个元素,请将这n个元素划分为两个数组,使得两个数组的元素之和sum1,sum2之间的差值m最小,输出划分好的数组。

例如

原始数组
int arr[]={1,1,3,5,7,3}
那么划分出来的两个数组分别是
int arr1[]={3,7}
int arr2[]={1,1,3,5}
这样就可以使差值达到最小值0


望远
浏览 2978回答 2
2回答

rookie_cainiao3830141

我说一下我的思路。先求出原始数组元素和的二分之一,然后对元素数组的元素进行分配(这个方法特别麻烦)相加,与那个二分之一的数比较,留下最接近的一组。加之前,对原数组进行排序,然后从最大值开始进行加判断。对于小数组还可以,对大数组就不适合了。仅供参考
打开App,查看更多内容
随时随地看视频慕课网APP