给定一个数组,每个元素范围是0~K(K < 整数最大值2^32),将该数组分成两部分,使得 |S1- S2|最小,其中S1和S2分别是数组两部分的元素之和。
实质是01背包问题的变型。
(1)求得sum值(总和)
(2)求得midel值(中值)
(3)通过01背包问题,求得最接近midel的值,即|sumx-midel|最小,根据互补特性一定存在另一半。
(4)结果值:res = |sum-sumx-sumx|
(5)为了数据安全使用double类型记录值,最后使用格式化输出整型结果。
原文:https://www.cnblogs.com/dream-flying/p/13302523.html