稀疏数组(五子棋)

简介: 稀疏数组(五子棋)
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();
    }
  }
}
相关文章
|
7月前
|
算法
动态数组(一维二维)探秘
动态数组(一维二维)探秘
|
8月前
|
存储 算法
五子棋与稀疏数组
五子棋与稀疏数组
27 0
|
8月前
|
算法 测试技术 API
【线段树】1622. 奇妙序列
【线段树】1622. 奇妙序列
|
8月前
|
算法 Java Go
Rust每日一练(Leetday0025) 矩阵置零、搜索二维矩阵、颜色分类
Rust每日一练(Leetday0025) 矩阵置零、搜索二维矩阵、颜色分类
77 0
Rust每日一练(Leetday0025) 矩阵置零、搜索二维矩阵、颜色分类
|
8月前
|
存储 机器学习/深度学习 人工智能
【408数据结构与算法】—数组和特殊矩阵的压缩存储(二十五)
【408数据结构与算法】—数组和特殊矩阵的压缩存储(二十五)
|
算法
精选算法题(2)——矩阵螺旋输出
精选算法题(2)——矩阵螺旋输出
|
存储 算法 Java
Java数据结构与算法分析(二)稀疏数组
在介绍稀疏数组前我们先来引入一个需求,下面是一个五子棋的棋盘(15 * 15),玩到中途时想要保存离开,希望下次打开还可以继续玩。我们怎么实现呢?
86 0
|
算法 大数据 Python
Leedcode 每日一练 搜索二维矩阵Ⅰ Python实现
Leedcode 每日一练 搜索二维矩阵Ⅰ Python实现
166 2
Leedcode 每日一练 搜索二维矩阵Ⅰ Python实现
|
存储 算法
基于链表和禁忌搜索启发式算法实现非一刀切二维矩形排样算法
基于链表和禁忌搜索启发式算法实现非一刀切二维矩形排样算法
108 0
|
Java
通过五子棋案例,实现稀疏数组与二维数组直接互相转换。
通过五子棋案例,实现稀疏数组与二维数组直接互相转换。
111 0
通过五子棋案例,实现稀疏数组与二维数组直接互相转换。