稀疏数组(五子棋)

简介: 稀疏数组(五子棋)
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月前
|
存储 机器学习/深度学习 算法
【算法训练-数组 三】【数组矩阵】螺旋矩阵、旋转图像、搜索二维矩阵
【算法训练-数组 三】【数组矩阵】螺旋矩阵、旋转图像、搜索二维矩阵
98 0
|
6月前
|
算法
动态数组(一维二维)探秘
动态数组(一维二维)探秘
|
7月前
|
存储 算法
五子棋与稀疏数组
五子棋与稀疏数组
25 0
|
7月前
|
存储 机器学习/深度学习 人工智能
【408数据结构与算法】—数组和特殊矩阵的压缩存储(二十五)
【408数据结构与算法】—数组和特殊矩阵的压缩存储(二十五)
|
存储 人工智能 移动开发
【C++算法图解专栏】一篇文章带你掌握前缀和算法(一维+二维)
【C++算法图解专栏】一篇文章带你掌握前缀和算法(一维+二维)
208 0
【C++算法图解专栏】一篇文章带你掌握前缀和算法(一维+二维)
|
存储 算法 Java
Java数据结构与算法分析(二)稀疏数组
在介绍稀疏数组前我们先来引入一个需求,下面是一个五子棋的棋盘(15 * 15),玩到中途时想要保存离开,希望下次打开还可以继续玩。我们怎么实现呢?
82 0
Leecode 836. 矩形重叠最简单易懂的一个思想
Leecode 836. 矩形重叠最简单易懂的一个思想
45 0
|
机器学习/深度学习 自然语言处理 算法
【每日算法Day 93】不用额外空间,你会旋转一个矩阵吗?
【每日算法Day 93】不用额外空间,你会旋转一个矩阵吗?
|
Java
通过五子棋案例,实现稀疏数组与二维数组直接互相转换。
通过五子棋案例,实现稀疏数组与二维数组直接互相转换。
105 0
通过五子棋案例,实现稀疏数组与二维数组直接互相转换。
|
算法 前端开发
日拱算法:搜索二维矩阵 II
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。