当前位置: 首页 > news >正文

网站建设满意度问卷调查沾益县住房和城乡建设局网站

网站建设满意度问卷调查,沾益县住房和城乡建设局网站,留下手机号预约看房,苏州网站建设信息网络1. 五子棋游戏,玩家对战一半停战休息,此时需要存储当前对战双方棋子信息 a. 采用二维数组存储: 0为空, 1代表黑棋 2代表蓝色棋子 b. 棋盘为11行,11列 > int [][] chessArray new int [11][11]; c. 出现的问题&am…

 1. 五子棋游戏,玩家对战一半停战休息,此时需要存储当前对战双方棋子信息

     a. 采用二维数组存储:

                                         0为空,

                                         1代表黑棋

                                         2代表蓝色棋子

      b. 棋盘为11行,11列 ==>   int [][] chessArray = new int [11][11];

      c. 出现的问题:整个数组,只存储了两个值。有点浪费内存空间==>延伸出将0,或其他相同数值抽出来,组成一个新的数组。与代码中抽出公共方法,有异曲同工之妙~

2. 稀疏数组(sparse array)  :当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。(例如保存棋盘数据,地图信息等)

3. 稀疏数组的处理方法是:

                                          1) 记录数组一共有几行几列,有多少个不同的值

                                          2) 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模

 

   4. 思路分析:

                 

        a. 遍历原始二维数组,获取有效的数据个数(非0值个数sum);

        b. 创建稀疏数组 int [][] new sparseArr = new [sum + 1][3];

        c. 稀疏数组第一行存储原始数组信息,总共11行11列有2条有效数据,存入稀疏数组。所以稀疏数组需要sum+1行。

        c.  循环原始数组,将黑棋,蓝棋目前的位置信息,存入稀疏数组

        d. 打印下稀疏数组

        e. 稀疏数组转换为原始数组(原以为直接两层循环,再判断稀疏数组值是否在此循环内,进行使用,需要多层循环,思路不对。是稀疏数组向原始数组转换(解压缩),用非稀疏数组展示保存的棋盘数据)

package com.nami.algorithm.study.day01;/*** beyond u self and trust u self.** @Author: lbc* @Date: 2023-08-28 17:23* @email: 594599620@qq.com* @Description: keep coding*/
public class SparseArray {public static void main(String[] args) {// 创建一个原始的二维数组 11 * 11// 0: 表示没有棋子, 1 表示 黑子 2 表蓝子int chessArr1[][] = new int[11][11];chessArr1[1][2] = 1;chessArr1[2][3] = 2;chessArr1[4][5] = 2;// 输出原始的二维数组System.out.println("原始的二维数组~~");for (int[] row : chessArr1) {for (int data : row) {System.out.printf("%d\t", data);}System.out.println();}int sum = 0;for (int[] row : chessArr1) {for (int data : row) {if (data > 0) sum++;}}int sparseArr[][] = new int[sum + 1][3];// 给稀疏数组赋值sparseArr[0][0] = 11;sparseArr[0][1] = 11;sparseArr[0][2] = sum;// 遍历二维数组,将非 0 的值存放到 sparseArr 中int count = 0; //count 用于记录是第几个非 0 数据for (int i = 0; i < 11; i++) {for (int j = 0; j < 11; j++) {if (chessArr1[i][j] != 0) {count++;sparseArr[count][0] = i;sparseArr[count][1] = j;sparseArr[count][2] = chessArr1[i][j];}}}// 输出稀疏数组的形式System.out.println();System.out.println("得到稀疏数组为~~~~");for (int i = 0; i < sparseArr.length; i++) {System.out.printf("%d\t%d\t%d\t\n", sparseArr[i][0], sparseArr[i][1], sparseArr[i][2]);}System.out.println();//将稀疏数组 --》 恢复成 原始的二维数组//1. 先读取稀疏数组的第一行,根据第一行的数据,创建原始的二维数组int chessArr2[][] = new int[sparseArr[0][0]][sparseArr[0][1]];//2. 在读取稀疏数组后几行的数据(从第二行开始),并赋给 原始的二维数组 即可for (int i = 1; i < sparseArr.length; i++) {chessArr2[sparseArr[i][0]][sparseArr[i][1]] = sparseArr[i][2];}// 输出恢复后的二维数组System.out.println();System.out.println("恢复后的二维数组");for (int[] row : chessArr2) {for (int data : row) {System.out.printf("%d\t", data);}System.out.println();}}}

   推荐尚硅谷算法视频

总结: 

          稀疏数组是对于原始数组的抽象,提取不同值进行存储。 稀疏数组第一行存储原始数组的行信息,列信息,非0值或不同值得个数,进行保存。使用时是稀疏数组向原始数组进行转换使用。它的作用相当于对数组进行压缩。解压缩,同压缩文件流程差不多意思                                           

http://www.yayakq.cn/news/954196/

相关文章:

  • 门户网站建设项目招标帮人做传销网站违法吗
  • 做网站软件的公司建筑规范app
  • php企业公司网站源码jsp做的网站难吗
  • 自己的网站在哪做的忘了最能打动顾客的十句话
  • 湛江建站网络公司免费拿货的代理商
  • lamp 做网站中装建设装饰有限公司
  • 旅游网站管理系统用第三方做网站
  • 深圳建设工程项目网站中国建设人才信息网站官网
  • 网站icp备案系统下载seo网络营销的技术
  • 怎么在搜索引擎里做网站网页wordpress多重分类
  • 广州建设网站精准客户电话号码购买
  • 常州做网站咨询河北建设工程信息网下载时间
  • 局域网内部网站建设app下载关于申请建设门户网站的
  • 茂南网站开发公司网站安装环境配置
  • 电子商务网站建设与维护读书报告网站技术规划
  • 电子商务网站的设计与实现教育机构报名
  • 建站宝盒自助建站系统赣州管理中心网站
  • cms网站开发框架网页设计师的认识
  • 提供网站建设找哪家公司好网上书店网站建设方案策划
  • 购物网站模板站国外html5特效网站
  • 做网站客户要先看效果后付款网站开发架构
  • 大学文明校园网站建设方案网站开发进阶实训报告
  • 用凡科做网站好弄吗哪些网站使用vue做的
  • 成都便宜网站建设公司哪家好互联网营销师考证报名入口
  • 网站保障体系建设找做网站公司经验
  • 网页版开发者内容管理工具seo关键词优化哪个平台好
  • 古典家具网站模板浦东教育网站官网
  • 全国建筑信息服务平台东营优化网站
  • 经典php网站开发教程腾讯云企业官网建设
  • 泰州高端网站建设柳州市住房和城乡建设局网站首页