gpt4 book ai didi

java - 仅使用一个循环将数组分为 2 个相等的部分,需要替代方法

转载 作者:行者123 更新时间:2023-12-02 09:14:52 26 4
gpt4 key购买 nike

通常我们做的是1.我们从左边开始计算整个数组的总和,并将其称为Leftsum2.然后我们从右端开始遍历数组并开始添加 将每个元素放入 RIGHTSUM,并从中减去每个元素 左和3.直到LEFTSUM=RIGHTSUM,然后我们分配迭代器的当前值 变量 I 到分割点4.现在SPLITPOINT索引之前的数组和从SPLITPOINT索引到末尾的数组具有相等的总和

主要问题------>

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

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

最佳答案

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

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

关于java - 仅使用一个循环将数组分为 2 个相等的部分,需要替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59085481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com