首页 > 解决方案 > 如何循环添加二维数组中的所有元素?

问题描述

给定一个二维字符串数组,我如何将所有元素相加,以便数组中的每个索引都是数组其余部分的总和?例如,[[a], [b], [c], [d], [e]]我最终得到一个数组
[[a+b+c+d+e], [a+b+c+d+e], [a+b+c+d+e], [a+b+c+d+e],[a+b+c+d+e]]。我想它不一定是二维数组,它可以是一维字符串数组,我最终在每个索引中都有一个字符串“a+b+c+d+e”。当我说循环时,我的意思是循环,没有额外的内存空间。所以也许在第一次迭代之后它可能看起来像[[a], [a + b], [a+b+c], [a+b+c+d], [a+b+c+d+e]]. 这样的代码是什么?答案可以是伪代码或任何语言

像这样:https ://andrew.gibiansky.com/blog/machine-learning/baidu-allreduce/

标签: javaarraysalgorithm

解决方案


我不太确定你想要实现什么。但是如果你看一下它可能是值得的Arrays#parallelPrefix,你可以用它来累积数组的单个元素。

public static void main(String[] args) {
    String[] str = {"a","b","c","d","e"};
    Arrays.parallelPrefix(str, (s1,s2) -> s1+s2);
    System.out.println(Arrays.toString(str));
}

//[a, ab, abc, abcd, abcde]

推荐阅读