首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅使用一个循环将数组分成2个相等和的部分,需要另一种方法

仅使用一个循环将数组分成2个相等和的部分,需要另一种方法
EN

Stack Overflow用户
提问于 2019-11-28 17:27:31
回答 1查看 100关注 0票数 0

通常我们做的是1.我们从左边开始计算整个数组的和,并称之为Leftsum。2.然后我们从右端开始遍历数组,并开始将每个元素添加到RIGHTSUM中,并从LEFTSUM中减去每个元素。3.直到LEFTSUM=RIGHTSUM,然后我们将迭代器变量i的当前值赋给拆分点4。现在在splitpoint index之前的数组和从SPLITPOINT index到end的数组具有相等的sum

主要问题->

但是如果array是( (3,5,10),( 3,10,5)),而不是(3,5,5,3,10,10),这将起作用,因为我们在这里找不到左右数组和相等的SPLITPOINT

第二部分的答案也应该是(3,5,10) (5,3,10),2个部分的总和应该等于而不是长度这是上面的一个简单的幻觉示例

EN

回答 1

Stack Overflow用户

发布于 2019-11-28 17:54:54

假设整个序列的总和是N。您实际上是在寻找一个和为N/2的子序列。(注意:如果N是奇数,则没有这样的子序列!)

这就是“子集和”问题。在Finding all possible combinations of numbers to reach a given sum上有一个很好的Java解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59085481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档