稀疏数组(五子棋)

简介: 稀疏数组(五子棋)
package suanfa;
public class xishuarr {
  public static void main(String[] args) {
    int chessArr1[][]=new int[11][11];
    int sum=0;
    chessArr1[1][2]=1;
    chessArr1[2][3]=2;
    chessArr1[3][5]=1;
    chessArr1[5][7]=2;
    System.out.println("二维数组");
    for(int[] row:chessArr1) {
      for(int data:row) {
        if(data!=0) {
          sum++;
        }
        System.out.printf("%d\t",data);
      }
      System.out.println();
    }
    int chessArr2[][]=new int[sum+1][3];
    chessArr2[0][0]=11;
    chessArr2[0][1]=11;
    chessArr2[0][2]=sum;
    int cnt=0;
      for(int i=0;i<chessArr1.length;i++) {
    for(int j=0;j<chessArr1.length;j++) {
      if(chessArr1[i][j] !=0){
           ++cnt;
          chessArr2[cnt][0]=i;
          chessArr2[cnt][1]=j;
          chessArr2[cnt][2]=chessArr1[i][j];
      }
        }
      }
      System.out.println();
    System.out.println("稀疏数组");
      for(int[] row:chessArr2) {
      for(int data:row) {
        System.out.printf("%d\t",data);
      }
      System.out.println();
    }
      System.out.println("稀疏数组转为二维数组");
      int x=chessArr2[0][0];//行数
      int y=chessArr2[0][1];//列数
      int count=chessArr2[0][2];//值的个数
      int[][] arr=new int[x][y];
      for(int i=1;i<chessArr2.length;i++) {
             x=chessArr2[i][0];//行数
             y=chessArr2[i][1];//列数
             count=chessArr2[i][2];//值的个数
             arr[x][y]=count;
      }
      for(int[] row:arr) {
      for(int data:row) {
        System.out.printf("%d\t",data);
      }
      System.out.println();
    }
  }
}
相关文章
|
6月前
|
存储 机器学习/深度学习 算法
【算法训练-数组 三】【数组矩阵】螺旋矩阵、旋转图像、搜索二维矩阵
【算法训练-数组 三】【数组矩阵】螺旋矩阵、旋转图像、搜索二维矩阵
84 0
|
4月前
|
存储 算法 Python
稀疏矩阵是矩阵中大部分元素为零的矩阵。
稀疏矩阵是矩阵中大部分元素为零的矩阵。
|
5月前
|
算法
动态数组(一维二维)探秘
动态数组(一维二维)探秘
|
6月前
|
存储 算法
五子棋与稀疏数组
五子棋与稀疏数组
22 0
|
算法
精选算法题(2)——矩阵螺旋输出
精选算法题(2)——矩阵螺旋输出
|
存储 Java
(一)Java数据结构之稀疏数组
稀疏数组(sparse array)是一种只为数组中的非零元素分配内存的特殊类型数组,分为三列: 1.行下标 2.列下标 3.值 第一行为总行数、总列数、值的个数,其他行存储了非零元素的下标和值。
60 0
|
存储 算法 Java
Java数据结构与算法分析(二)稀疏数组
在介绍稀疏数组前我们先来引入一个需求,下面是一个五子棋的棋盘(15 * 15),玩到中途时想要保存离开,希望下次打开还可以继续玩。我们怎么实现呢?
75 0
|
算法 大数据 Python
Leedcode 每日一练 搜索二维矩阵Ⅰ Python实现
Leedcode 每日一练 搜索二维矩阵Ⅰ Python实现
153 2
Leedcode 每日一练 搜索二维矩阵Ⅰ Python实现
|
Java
通过五子棋案例,实现稀疏数组与二维数组直接互相转换。
通过五子棋案例,实现稀疏数组与二维数组直接互相转换。
101 0
通过五子棋案例,实现稀疏数组与二维数组直接互相转换。
|
算法 前端开发
日拱算法:搜索二维矩阵 II
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。