稀疏数组介绍:对于一个数组,大部分的元素都为同一个值。从节约空间的角度,可以用一个较小的数组只存储特定的几个值及这几个值的索引,这就是稀疏数组。
稀疏数组的实现很简单:
稀疏数组的第一行记录原始数组的行数、列数、元素个数;
其余行记录元素所在位置的 行数、列数、以及值
如图所示
原始数组转稀疏数组的代码
//数组转稀疏数组
public static int[][] arrayToSparse(int[][] array){
//遍历原始数组,得到稀疏数组元素的个数
int temp=0;
for (int i=0;i<array.length;i++){
for (int j=0;j<array[i].length;j++){
if (array[i][j]!=0){
temp++;
}
}
}
//创建稀疏数组
int[][] sparseArray=new int[temp+1][3];
sparseArray[0][0]=array.length;
sparseArray[0][1]=<