为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

素胚勾勒不出你 2021-09-12 20:42:31
假设我的矩阵 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;     }    }  }
查看完整描述

2 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

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


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;


查看完整回答
反对 回复 2021-09-12
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

使用此代码。只需使尺寸标识部分动态化


import java.util.Arrays;

public class Main

{


  public static void main (String[]args)

  {

    System.out.println ("Hello World");

    int m1 = 3, n1 = 1, m2 = 2, n2 = 4; // m1 and n1 are matrix 'x' dimensions and m2 & n2 are natrix 'y' dimensions

    int x[][] = {

      {1},

      {2},

      {3}

    };

    int y[][] = {

      {1, 2, 1, 2},

      {1, 2, 1, 2}};


     int op[][] = new int[m1][n2];

     for (int[] row: op)// filling empty matrix with zeroes

     Arrays.fill(row, 0);


    for (int i = 0; i < m1; i++)

      {

    for (int j = 0; j < n1; j++)

      {

        op[i][j] = x[i][j];

      }

      }

    int op2[][] = new int[m1][n2];

    for (int[] row: op2)// filling empty matrix with zeroes

     Arrays.fill(row, 0);


    for (int i = 0; i < m2; i++)

      {

    for (int j = 0; j < n2; j++)

      {

        op2[i][j] = y[i][j];

      }

      }


      for(int i=0;i<m1; i++)

      {

          for(int j=0;j<n2;j++)

          {

              System.out.print((op[i][j]+op2[i][j])+" ");

          }

          System.out.println();

      }


  }

}


查看完整回答
反对 回复 2021-09-12
  • 2 回答
  • 0 关注
  • 149 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信