二維陣列轉稀疏陣列的思路

2021-09-27 02:34:11 字數 1581 閱讀 7602

二維陣列轉稀疏陣列的思路

遍歷 原始的二維陣列,得到有效資料的個數sum

根據sum就可以建立稀疏陣列sparsearr int[sum + 1][3]

將二維陣列的有效資料存入到稀疏陣列

//建立乙個原始大的二維陣列11 * 11

//0: 表示沒有棋子

int chessarr1[

]=newint[11

][11]

; chessarr1[1]

[2]=

1;chessarr1[2]

[3]=

2;for(

int[

] row : chessarr1)

system.out.

println()

;}//1.先遍歷二維陣列 得到非0資料的個數

int sum =0;

for(

int i =

0; i <

11; i++)}

}int sparsearr[

]=newint

[sum +1]

[3];

///給稀疏陣列賦值

sparsearr[0]

[0]=

11;sparsearr[0]

[1]=

11;sparsearr[0]

[2]= sum;

int count =0;

//用於記錄是第幾個非0資料

for(

int i =

0; i <

11; i++)}

} system.out.

println()

; system.out.

println

("得到的稀疏陣列");

for(

int i =

0; i < sparsearr.length; i++

)

稀疏陣列轉原始的二組陣列的思路

先讀取稀疏陣列的第一行,根據第一根的資料,建立原始的二維陣列, 比如上面 chessarr2=int[11][11]

在讀取稀疏陣列後幾行的資料, 並賦給原始的二維陣列即可

system.out.

println

("得到的稀疏陣列");

for(

int i =

0; i < sparsearr.length; i++

)int chessarr2[

]=newint

[sparsearr[0]

[0]]

[sparsearr[0]

[1]=

11];for

(int i =

1; i < sparsearr.length; i++

) system.out.

println

("恢復後的二維陣列");

for(

int[

] row : chessarr1)

system.out.

println()

;}

稀疏二維陣列

package com.atguigu.sparsearray public class sparsearray system.out.println 計算原始二維陣列裡面非0值的個數,並輸出 int sum 0 for int is chessarr system.out.println sum ...

二維陣列與稀疏陣列

一維數00組的集合,二維陣列可以由多個一維陣列構成 二維陣列的建立 int a 推薦使用 int a2 直接建立 int a new int x 可以不進行定義也可以定義 int a int a new int,二維陣列的迭代 int b1 newint for int i 0 i 實現 packa...

二維陣列與稀疏陣列

二維陣列 陣列中的每乙個元素又是乙個陣列 宣告int a public static void main string args 0 1 2 0 1 2 0 1 2 0 1 2 newint 3 建立乙個長度為3的二維陣列,其中每乙個一維陣列的值為空 null 二維陣列遍歷 迴圈每次取出二維陣列中的...