亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號