java - 如何通过在java中的空位置添加零来使两个不相等的二维数组相等?

标签 java arrays

假设我的矩阵 A 的阶数为 3 x 2,矩阵 B 的阶数为 2 x 4。我的结果矩阵应为 3 x 4 的阶数,并且应包含矩阵 A 和矩阵 B 的相加。为了实现这一点,我必须首先通过附加必要的零来使矩阵 A 和矩阵 B 大小相等(两者都应该是 3 x 4)。

示例:-

int[][] a = { {1,0}, {1,1}, {1,0} }; 
int[][] b = { {1,1,0,1}, {1,1,1,1} }; 

sumArray(a,b) 将返回:{ {2,1,0,1}, {2,2,1,1}, {1,0,0,0} }

我尝试过的是。 (ans.length表示得到的矩阵长度)

for(int i =0;i<ans.length;i++)
  {
    for(int j=0;j<ans[i].length;j++)
    {
     if(arr1[i][j] == null)
     {
       arr1[i][j]= 0;
     }
      if(arr2[i][j] == null)
     {
       arr2[i][j]= 0;
     }
    }
  }

最佳答案

首先,您必须找到输出数组的大小。

int h = a.length>b.length?a.length:b.length;
int w = a[0].length>b[0].length?a[0].length:b[0].length;
int[][] result = new int[h][w];

然后做作业。

for(int i = 0; i<result.length; i++){
    for(int j = 0; j<result[i].length; j++){
        if(i<a.length && j < a[i].length){
            result[i][j] += a[i][j];
        }
        if(i<b.length && j < b[i].length){
            result[i][j] += b[i][j];
        }

    }
}
return result;

关于java - 如何通过在java中的空位置添加零来使两个不相等的二维数组相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52275772/

相关文章:

java - 转换字节值,以便删除/恢复其 MSB

java - NetBeans 中的collectd 插件

arrays - 获取jq中的对象数组索引

Java - 有类似二进制流的东西吗?

Python:并行修改数组的简单方法

ASP.NET MVC : Use byte array as source of IMG tag through ViewData?

java - 我在拉力赛中有一个测试用例。我想使用 java API 获取其中存在测试用例的测试文件夹的名称

java - AsynchronousByteChannel 的线程含义

java - Thymeleaf 不热插拔 Intellij

c - 使用数组时 C 中的段错误