一个简单的数组问提?该如何解决
一个简单的数组问提??
一个数组里有这样的一些数。
0,1,2,3,4,4;
怎样才可以把他按数值分成两等分 ,用变成的方法,可以分为
1,2,4, 和 3,4,0;两部分,
但是对与其他的也可以分,如: 1,1,1,2,5,0;可以分成 1,1,1,2和5,0
或是 1,1,1,2,0;和 5。
就是要达到分成两份后 ,数值想加相等。
那为大哥可以用变成来实现;谢谢了。
------解决方案--------------------
去看看这个帖子吧,各位老大讲的很清楚了
http://community.****.net/Expert/topic/5559/5559088.xml?temp=.8574182
------解决方案--------------------
可以有很多做法,我记得最近一次是用随机交换做的,呵呵.
------解决方案--------------------
一种简单的办法,先求出数值和
之后求出平均值(/2)
然后探测一组和为平均值的数列
解毕!
这个应该很容易实现吧!
------解决方案--------------------
一种简单的办法,先求出所有数值和
之后求出整体的半值(sum/2)
然后探测一组和为半值的数的序列
解毕!
这个应该很容易实现吧!
------解决方案--------------------
学习!
------解决方案--------------------
"关键在于怎么样才可以探测出一组和为半值的数的数列,,,!! "
这个肯定有无数方法实现,
说个最简单、一下子想到的,没仔细考虑,可能有问题,
但应该这个问题很容易搞定,抛砖引玉了
用栈结构去穷举
从最小数开始压栈,将当前栈内元素和,与栈外最小元素相加
若小于“半值”,栈外最小元素入栈;
若大于“半值”,栈顶元素出栈,再与刚才栈外的最小元素求和,循环;
若等于则输出
------解决方案--------------------
若所有元素用尽(就是说当前栈外最小大于半值)
或者栈为空
则将次小数第一个入栈,如此循环
一个数组里有这样的一些数。
0,1,2,3,4,4;
怎样才可以把他按数值分成两等分 ,用变成的方法,可以分为
1,2,4, 和 3,4,0;两部分,
但是对与其他的也可以分,如: 1,1,1,2,5,0;可以分成 1,1,1,2和5,0
或是 1,1,1,2,0;和 5。
就是要达到分成两份后 ,数值想加相等。
那为大哥可以用变成来实现;谢谢了。
------解决方案--------------------
去看看这个帖子吧,各位老大讲的很清楚了
http://community.****.net/Expert/topic/5559/5559088.xml?temp=.8574182
------解决方案--------------------
可以有很多做法,我记得最近一次是用随机交换做的,呵呵.
------解决方案--------------------
一种简单的办法,先求出数值和
之后求出平均值(/2)
然后探测一组和为平均值的数列
解毕!
这个应该很容易实现吧!
------解决方案--------------------
一种简单的办法,先求出所有数值和
之后求出整体的半值(sum/2)
然后探测一组和为半值的数的序列
解毕!
这个应该很容易实现吧!
------解决方案--------------------
学习!
------解决方案--------------------
"关键在于怎么样才可以探测出一组和为半值的数的数列,,,!! "
这个肯定有无数方法实现,
说个最简单、一下子想到的,没仔细考虑,可能有问题,
但应该这个问题很容易搞定,抛砖引玉了
用栈结构去穷举
从最小数开始压栈,将当前栈内元素和,与栈外最小元素相加
若小于“半值”,栈外最小元素入栈;
若大于“半值”,栈顶元素出栈,再与刚才栈外的最小元素求和,循环;
若等于则输出
------解决方案--------------------
若所有元素用尽(就是说当前栈外最小大于半值)
或者栈为空
则将次小数第一个入栈,如此循环