之前发过一个类似帖子,但是还是没找到最优的算法具体需求如下:
将N个整数的集合分成2堆,使这2堆的差值最小,求这2堆集合(S1,S2),2堆集合长度不要求一样。或则问题可以转换成这样,最小差值已经确定为MIN,即求sum(S1)- sum(S2)= MIN 的2堆集合。
将N个整数的集合分成2堆,使这2堆的差值最小,求这2堆集合(S1,S2),2堆集合长度不要求一样。或则问题可以转换成这样,最小差值已经确定为MIN,即求sum(S1)- sum(S2)= MIN 的2堆集合。
解决方案 »
- 关于从JTable中获取值得问题
- if 条件很多时,怎样写比较好
- 今天面试遇到问题,坛友们帮帮,解决给分!
- 急!!!!!!!!tomcat的问题,好奇怪!!!!!!
- JAVA 中这样通过文件后缀得到文件的图标?
- 自以为是高手,初次接触java,是看了 java.lang.reflect.Proxy 的newProxyInstance方法 的源码30分钟后, 头晕了。
- oracle中怎么实现日期+天数的操作
- 还是JTree中添加CheckBox的问题,请指教。。
- 关于JTree的简单问题?
- 请教如何实现多文件上传啊,我只是想把所有文件都上传在一个字段里,即在上传时把所有文件打包成zip文件,用java.util.zip能实现吗?
- 求大牛回复:static final初始化问题
- java支不支持NetBIOS编程
同时记录两个减法运算的操作数,被减数归为A,减数归为B,差(非负数)仍属于A。而再与其“差”进行减法运算的数就归为B,其差亦归为B,依此类推~
集合为A
1.堆a 和b
2.找A最大的一个数放如a,次大的放入b。
3.假设|sum(a)-sum(b)| = c,找到与c接近的的数放入 a,b较小的堆里面
4.循环3知道 A里面都被拿出来。
还是模拟下步骤,好懂些
如1 2 3 4
a b c d
1 1 2
a d-c b
1 1
a b-d+c
0
b-d+c-a
根据符号可知
bc一组, ad一组
只用在处理的过程中记录下来每次操作就行了
perfect有图有真相,很好~