美文网首页
稀疏数组与二维数组互转

稀疏数组与二维数组互转

作者: ChadJ | 来源:发表于2023-10-17 17:56 被阅读0次

数组转稀疏数组

  1. 遍历原始数组,找出有效数据个数 n
  2. 根据有效数据个数,构建稀疏数组 sparseArr = int[n+1][3];
  3. 将原始数组的行数row、列数column和有效数据个数n填入稀疏数组的第一行 sparseArr[0] =new int[] {row, column, n};
  4. 遍历原始二维数组,找到有效数据依次填入稀疏数组;
public static int[][] toSparse(int[][] arr, int exclude) {
  int row = arr.length;
  int column = arr[0].length;
  int n = 0;
  for(int  i = 0; i < row; i++) {
    for(int j = 0; j < column; j++) {
      if(arr[i][j] != exclude) {
        n += 1;
      }
    }
  }
  int[][] sparseArr = new int[n+1][3];
  sparseArr[0] = new int[]{row, column, n};
  int t = 1;
  for(int  i = 0; i < row; i++) {
    for(int j = 0; j < column; j++) {
      if(arr[i][j] != exclude) {
        sparseArr[t] = new int[]{i, j, arr[i][j]};
        t += 1;
      }
    }
  }
  return sparseArr;
}

稀疏数组转数组

  1. 根据稀疏数组的sparseArr[0]构建二维数组;
  2. 遍历二维数组将其初始化为默认值;
  3. 按行遍历稀疏数组,修改二维数组指定下标的数据;
public static int[][] restoreArr(int[][] sparseArr, int defaultValue) {
  int row = sparseArr[0][0];
  int column = sparseArr[0][1];
  int[][] arr = new int[row][column];
  if(defaultValue != 0) {
    for(int  i = 0; i < row; i++) {
      for(int j = 0; j < column; j++) {
        arr[i][j] = defaultValue;
      }
    }
  }
  for(int i = 1; i < sparseArr.length; i++) {
    arr[sparseArr[i][0]][sparseArr[i][1]] = sparseArr[i][2];
  }
  return arr;
}

相关文章

  • 二维数组与稀疏数组互相转换

    1.二维数组转换为稀疏数组 2.稀疏数组转换二维数组

  • 稀疏数组

    搞清楚稀疏数组之前,先得知道什么是二维数组 二维数组 二维数组相当于一维数组里面存了些一维数组 稀疏数组 可以看到...

  • 稀疏数组

    二维数组转成稀疏数,案例(五子棋),思路:1.获取二维数组中有效数据的个数.2.稀疏数组的列数为3,行数通过有效数...

  • Day08

    二维数组 二维数组格式 二维数组初始化 二维数组的遍历 二维数组内存存储细节 二维数组与函数注意点: 主要是看函数...

  • 矩阵基础13-稀疏矩阵

    一. 稀疏矩阵基本概念 矩阵可以看做二维的数组但是数组可以是二维,也可以是多维的 1.1 数组的储存 1.2 线性...

  • OpenCV实现Mat与vector,Mat与数组互转

    OpenCV实现Mat与vector互转opencv Mat与Vector、Mat与数组、Vector与数组之间互...

  • 数据结构--稀疏数组

    概述 稀疏数组也是一种数组(总是二维的),是一种多维数组的数组压缩技术。比如存在一个的数组,但是数组中只有3个元素...

  • 二维数组length属性

    二维数组的length属性与一维数组不同。一维数组表示数组的长度。在二维数组中:数组名.length指示数组的行数...

  • vue项目技术点总结(2020.05)

    1 一维数组给二维数组赋值 将一维数组内容按顺序赋值给不规则的二维数组(一维数组的长度与二维数组里的数组长度之和相...

  • 稀疏数组转换为二维数组

网友评论

      本文标题:稀疏数组与二维数组互转

      本文链接:https://www.haomeiwen.com/subject/puhqidtx.html