稀疏数组
Posted lillill
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了稀疏数组相关的知识,希望对你有一定的参考价值。
如果数组中分布有大量的元素 0,即非 0 元素非常少,这类数组称为稀疏数组。
压缩存储稀疏数组的方法是:只存储数组中的非 0 元素,与前面的存储方法不同数组,矩阵非 0 元素的存储需同时存储该元素所在数组
/** * 数组转稀疏数组 */ public static int[][] Test1(int[][] nums) int count = 0;//计数器 int row = 0;//行 int col = 0;//列 for (int i = 0; i < nums.length; i++) int[] items = nums[i]; col = items.length; for (int j = 0; j < items.length; j++) if (nums[i][j] != 0) count++; row = nums.length; int[][] zipArr = new int[row + 1][3]; zipArr[0][0] = row; zipArr[0][1] = col; zipArr[0][2] = count; count = 0; for (int i = 0; i < nums.length; i++) int[] items = nums[i]; col = items.length; for (int j = 0; j < items.length; j++) if (nums[i][j] != 0) count++; zipArr[count][0] = i; zipArr[count][1] = j; zipArr[count][2] = nums[i][j]; return zipArr; /** * 稀疏数组转数组 */ public static int[][] Test2(int[][] item) int[][] ars = new int[item[0][0]][item[0][1]]; for (int i = 1; i < ars.length+1; i++) ars[item[i][0]][item[i][1]]=item[i][2]; return ars;
输出
3 3 3 0 0 1 1 2 5 2 0 3 1 0 0 0 0 5 3 0 0
以上是关于稀疏数组的主要内容,如果未能解决你的问题,请参考以下文章