zoukankan      html  css  js  c++  java
  • jQuery火箭图标返回顶部代码

    首先我们看一个需求

    在11 * 11 的五子棋的棋盘中 我们使用0代表十字交叉点也是无效的数据 用1代表黑棋 用2代表蓝棋
    那么所看到的棋盘如下

    改用数字显示后就如一下样式

    现在我们需要将怎个棋盘存储起来,但是又发现有很多为0 的无效数据,那么我们就需要考虑将有效的数据存储无效的数据不用存储起来
    这样我们就可以使用稀疏数组将数据存储起来

    稀疏数组

    稀疏数组有一定会有三行,列是随有效数据的个数而变化的,先看一个稀疏数组的大概样子

    二维数组转换为稀疏数组的思路

    • 第一部 需要遍历稀疏数组,获取有效数据的个数(sum),改个数可以用来确定稀疏数组的行数,那么稀疏数组的行数就是(sum + 1)【因为稀疏数组的第一行是原始二维数组已经确定好了的】
    //统计原始二维数组中的有效数据的个数,sum代表二维数组中有效数据的个数
            int sum = 0;
            for (int i = 0; i < chessArr.length; i++) {
                for (int j = 0; j < chessArr.length; j++) {
                    if (chessArr[i][j] != 0){
                        sum++;
                    }
                }
            }
            System.out.println("有效数据的个数为:" + sum);
    
    • 第二部 创建一个稀疏数组 int[][] sparseArr[sum +1 ][3]
            //1. 创建稀疏数组
            int sparseArr[][] = new int[sum + 1][3];
    
    • 第三部 遍历稀疏数组中的有效数据的索引和值,并将有效数据存入稀疏数组中
             //给稀疏数组的第一行复制
            sparseArr[0][0] = 11;
            sparseArr[0][1] = 11;
            sparseArr[0][2] = sum;              --sum(有效数据的个数)
            //2. 给稀疏数组赋值,count用于计数,计算该稀疏数组的第几行
            int count = 0;
            for (int i = 0; i < chessArr.length; i++) {
                for (int j = 0; j < chessArr.length; j++) {
                    if (chessArr[i][j] != 0){
                        count++;
                        sparseArr[count][0] = i;
                        sparseArr[count][1] = j;
                        sparseArr[count][2] = chessArr[i][j];
                    }
                }
            }
    

    稀疏数组转换为二维数组的思路

    • 第一部 读取稀疏数组的第一行,利用第一行的数据,创建出没有有效数据的二维数组 reChessArr = int[sparseArr[0][0]][sparseArr[0][1]];
      int reChessArr[][] = new int[sparseArr[0][0]][sparseArr[0][1]];
    • 第二部 遍历稀疏数组的后几行数据,并且赋值给 reChessArr, 这样就还原了有数据的二维数组
           //给还原后的二维数组赋值
            for (int i = 1; i < sparseArr.length; i++) {
                reChessArr[sparseArr[i][0]][sparseArr[i][1]] = sparseArr[i][2];
            }
    

    全部代码地址

    码云(gitee): dataStructures-sparseArray

    github: dataStructures-sparseArray

  • 相关阅读:
    利用JSON Schema校验JSON数据格式
    爬虫初体验:Python+Requests+BeautifulSoup抓取广播剧
    CSS选择器语法&示例
    Xpath语法&示例
    通过批处理命令for提取数据
    katalon系列十七:报告&Katalon Analytics
    katalon系列十六:代码运行时实时创建元素对象或列表
    PhpStorm 常用插件
    Nginx 配置 https
    Tmux 入门
  • 原文地址:https://www.cnblogs.com/TJ21/p/13546482.html
Copyright © 2011-2022 走看看