代码小记_01_稀疏数组的思路和代码实现

 

目录

适用场景

思路

代码实现


适用场景

原数组0值比较多,通过使用稀疏数组,将较为庞大的原数组压缩为较小的数组

思路

  1. 遍历原始的二维数组,得到非零值的个数count;
  2. 根据count创建稀疏数组arrSp int [count+1] [3];
  3. 将二维数组的非零值存入到稀疏数组;【首行:标记原数组的行、列、非零值的个数;其他行标记非零值所在的行、列、数值。】
  4. 读取稀疏数组的第一行,根据第一行的数据,创建原始二维数组 arrr [7] [7];
  5. 读取稀疏数组的后几行数据,赋值给原始的二维数组即可。

 

代码小记_01_稀疏数组的思路和代码实现_第1张图片

 

代码实现

public class arrSparse {
	public static void main(String[] args) {
		//原数组
		int arr[][] = new int[7][7];
		arr[0][3] = 22;
		arr[0][6] = 15;
		arr[1][1] = 11;
		arr[1][5] = 17;
		int count = 0;
		
		//打印原数组,并记录数组中非零值的个数count
		for(int i=0; i

 

你可能感兴趣的:(数据结构与算法小记,渣渣的代码小记)