程序问答   发布时间:2022-05-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用 2 个 int 数组创建二维数组大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用 2 个 int 数组创建二维数组?

开发过程中遇到使用 2 个 int 数组创建二维数组的问题如何解决?下面主要结合日常开发的经验,给出你关于使用 2 个 int 数组创建二维数组的解决方法建议,希望对你解决使用 2 个 int 数组创建二维数组有所启发或帮助;

我想用 2 个输入数组的总和(通过添加行和列元素)构建一个二维矩阵。

例如,如果 a 是 {1,3,5} 而 b 是 {4,8},我想这样构建我的矩阵:[{1,5},{4,7,9},{8,11,13}]

这里有更多解释:[{1,5}(这是a),{4,9}(4来自b,7=3+4)(9=5+4),{8,13}]。 (再次从 b 取 8,然后 11=3+8)(13=5+8)。如果用a绘制第一行,然后将b绘制为a[0]对齐的列,则可以将行元素与列元素相加得到求和矩阵。

有没有更有效的方法来做到这一点?我尝试编写 2 个 for 循环,这会产生很大的时间和空间复杂性。

 public voID BuildMatrix (int[] a,int[] b) {
            int rows = b.length+1;
            int columns = a.length;
            int[][] matrix = new int[b.length+1][a.length];
            for (int i = 0; i < columns-1; i++) {
                matrix[0][i] = a[i];
                for (int j = 1; j < rows; j++) {
                    matrix[j][0] = b[j-1];
                    matrix[j][i+1] = b[j-1] + a[i+1];
                }
            } }

解决方法

输入数组是否具有任何可能的大小?如果您提前知道尺寸,则可以对其进行优化。

您正在计算 rowscolumns 两次:

        int rows = b.length+1;
        int columns = a.length;
        int[][] matrix = new int[b.length+1][a.length];

为什么不呢:

        int rows = b.length+1;
        int columns = a.length;
        int[][] matrix = new int[rows][columns];

同样,您可以在此处排除 b[j-1](但编译器可能会这样做):

                matrix[j][0] = b[j-1];
                matrix[j][i+1] = b[j-1] + a[i+1];

不过这些都是非常小的部分。

您应该查看更广泛的情况并尝试并行化 BuildMatrix 调用(如果它被调用很多)。然后,您将为多个 BuildMatrix 调用准备一组输入,并在多个处理器内核上运行它们(并行)。

大佬总结

以上是大佬教程为你收集整理的使用 2 个 int 数组创建二维数组全部内容,希望文章能够帮你解决使用 2 个 int 数组创建二维数组所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:int使用