Java数组09:稀疏数组

Centos7安装Tesseract5.5.0+SpringBoot集成部署(离线版) Java 中实现 OCR(光学字符识别)功能,可以使用 Tesseract OCR,这是一个开源的 OCR 引擎,支持多种语言,并且可以在 Java 中通过 Tesseract API 进行集成。 阅读详情

稀疏数组:

  • 需求:编写五子棋游戏中,有存盘退出和续上盘的功能。

在这里插入图片描述

  • 分析问题:因为该二维数组的很多值是默认值0,因此记录了很多没有意义的数据。
  • 解决:稀疏数组

稀疏数组的介绍

  • 当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。
  • 稀疏数组的处理方式是:
    • 记录数组一共有几行几列,有多少个不同值
    • 把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模
  • 如下图:左边是原始数组,右边是稀疏数组

在这里插入图片描述

package com.epfox.array;

public class ArrayDemo08 {
    public static void main(String[] args) {
        //创建一个二维数组 11*11  0:没有棋子   ,  1:黑棋  2:白棋
        int[][] array1 = new int[11][11];
        array1[1][2] = 1;
        array1[2][3] = 2;
        //输出原始的数组
        System.out.println("输出原始的数组");
        for(int[] ints: array1){
            for(int anInt : ints){
                System.out.print(anInt+"\t");
            }
            System.out.println();
        }
        System.out.println("==============");
        //转换为稀疏数组保存
        //获取有效值的个数
        int sum = 0;
        for (int i = 0; i < 11; i++) {
            for (int j = 0; j < 11; j++) {
                if (array1[i][j]!=0){
                    sum++;
                }

            }

        }
        System.out.println("有效值的个数:" + sum);
        //2.创建一个稀疏数组的数组
        int[][] array2 = new int[sum+1][3];

        array2[0][0] = 11;
        array2[0][1] = 11;
        array2[0][2] = sum;

        //遍历二维数组,将非零的值,存放稀疏数组中
        int count = 0;
        for (int i = 0; i < array1.length; i++) {
            for (int j = 0; j < array1[i].length; j++) {
                if(array1[i][j]!=0){
                    count++;
                    array2[count][0] = i;  //有效值的横坐标
                    array2[count][1] = j;  //有效值的纵坐标
                    array2[count][2] = array1[i][j];  //有效值的具体值
                }

            }
        }
        //输出稀疏数组
        System.out.println("稀疏数组");

        for (int i = 0; i < array2.length; i++) {
            System.out.println(array2[i][0] + "\t" + array2[i][1] + "\t" + array2[i][2] + "\t");
        }
        System.out.println("========================");
        System.out.println("还原");
        //1.读取稀疏数组
        int[][] array3 = new int[array2[0][0]][array2[0][1]]; //从稀疏数组获取行和列
        //2.给其中的元素还原它的值
        for (int i = 1; i < array2.length; i++) {
            array3[array2[i][0]][array2[i][1]] = array2[i][2];
        }
        //3.打印
        System.out.println("输出还原的数组");
        for(int[] ints: array3){
            for(int anInt : ints){
                System.out.print(anInt+"\t");
            }
            System.out.println();
        }
    }
}

国密https握手协议抓包及流程详解 使用的密码套件清单-Cipher Suite,这里服务器端选择了ECC_SM4_CBC_SM3密码套件,也就是SM2公钥算法、SM4-CBC分组密码算法和SM3杂凑算法。具体来说,这里SM2算法密钥交换算法,SM4是加密算法(SM4-CBC)、SM3是校验算法(国标要求为HMAC-SM3)。服务器的加密证书:加密证书中在同样在扩展字段中KeyUsage标识出KeyEncipherment为true和dataEncipherment为true,即数字证书中包含的公钥可用来做密钥加密密钥和数据密钥。 阅读详情

相关推荐

无感健康监测的未来:毫米波雷达如何重新定义睡眠科技与居家养老

毫米波雷达技术正重新定义无感健康监测,特别是在睡眠科技与居家养老领域。通过精准监测呼吸、心率和体动,无需穿戴设备即可实现临床级精度。结合合宙Air700E开发板,构建了完整的远程看护解决方案,为老年人提供跌倒检测、异常报警等安全保障,同时保护用户隐私。

cake8的博客 567

Java数组09:稀疏数组

当一个数组中大部分元素为0,或者为同一值当数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方式记录数组一共有几行几列,有多少个不同值把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模如下图左边是原始数组,右边是稀疏数组//1、创建一个二维数组11*110无棋子;1黑棋;2白棋。System.out.println("输出原始数组");array1){ints){httpshttps。...

tianyi520jx的博客 165

Axure RP 9在Windows 11环境下的高效安装与配置指南

本文提供Axure RP 9在Windows 11系统下的详细安装步骤与配置指南。针对Win11安全特性,从获取官方安装资源、调整系统权限,到定制化安装路径、精准汉化及性能优化,系统性地解决了安装闪退、汉化失败、运行卡顿等常见问题,确保用户获得稳定流畅的原型设计体验。

mango的博客 480

Day09 java数组:Arrays类,冒泡排序,稀疏数组

Arrays public static void main(String[] args) { int[] a={1,2,5,3,8,1}; System.out.println(Arrays.toString(a)); Arrays.sort(a);//数组排序 System.out.println(Arrays.toString(a)); Arrays.fill(a,0);//数组填充 System.out.println(Arrays.toString

蒋亚文的博客 276

阿里巴巴达摩院人工智能训练师(高级)

阿里巴巴达摩院人工智能训练师(高级)

huang0612123的博客 1万+

1.47寸ST7789V3彩色TFT LCD嵌入式驱动详解

TFT LCD是嵌入式人机交互(HMI)的核心显示技术,其工作原理依赖于行列驱动、RGB像素寻址与伽马校正等模拟/数字协同机制。ST7789V3作为主流低功耗TFT控制器,支持SPI接口与16位RGB565数据格式,具备高兼容性与轻量级驱动优势。在资源受限的MCU平台(如ARM Cortex-M系列)上,结合RT-Thread设备驱动模型与QSPI硬件加速,可实现高效显存管理、Bresenham图形算法及GB2312中文字模渲染。典型应用场景涵盖便携设备状态屏、工业HMI面板与教育开发套件——本文以1.47

weixin_42599908的博客 123

Day13-01 P56 Java数组06:二维数组 P57Java数组07:Arrays类讲解 P58 Java数组08:冒泡排序 P59 Java数组09:稀疏数组

Day13-01 P56 Java数组06:二维数组 P57Java数组07:Arrays类讲解 P58 Java数组08:冒泡排序 P59 Java数组09:稀疏数组

jackyzhang202212的博客 191

雷达参数的设置

采样率又可以叫做采样速率或者,顾名思义就是每秒采集的次数。该值越高,单位时间内对信号的采集越多,采样率的单位可以用Hz或者sps表示(sps是采样率,是每秒采样点的数量,sp表示采样点数),一般1sps=1Hz。采样时间是采样点数和采样周期的乘积得到的结果。假设实际采样率为4560ksps,采样点数为256,那么采样周期为1/4560(ms),那么ADC的采样时间就为256*(1/4560)(ms)=0.056ms=56微秒。

qq_50974341的博客 1912

稀疏数组

稀疏数组的概念 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组 稀疏数组的处理方法: 1)记录数组一共有几行几列,有多少个不同的值 2)把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模 图解 代码 package com.lxh.sparsearray; import java.io.*; /** * @author lxh * @create 2020-09-09 8:26 */ public class SparseArray {

weixin_45226558的博客 362

AI快速变现之路,AI视频创作

初期投入$3000(工具订阅+样片制作),重点攻克跨境电商和本地生活服务市场。关注2025年AIGC视频工具的API降价趋势(如Pika企业版折扣可达50%),建议与云服务商签订长期合作协议。

qq_29896351的博客 1981

一文搞懂电流、电压的有效值 RMS

交流电有正半周、负半周,直接平均可能抵消成 0,但负半周一样会发热。这个交流电如果换成直流电,能产生同样发热功率时,对应的直流电压或电流”,电容耐压通常不能按 220V 选,常见会选 400V 或更高余量。所以做硬件时,220VAC 整流滤波后电容上会接近。电压/电流的有效值,也叫。如果它加在电阻上,发热按。

qq_52293640的博客 450

数据结构——稀疏数组与二维数组

title: 稀疏数组与二维数组 categories: 数据结构 tags: 数据结构 typora-root-url: …/ abbrlink: 1245787517 date: 2019-09-20 16:40:15 稀疏数组 介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 处理方式 记录数组一共有几行几列,有多少个不同的值 把具...

李亚飞的博客 2844

C++设计模式之观察者模式

观察者模式(Observer Pattern)是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。这种模式通常用于实现分布式事件处理系统,当一个对象(称为“主题”或“发布者”)改变状态时,所有注册的观察者都会收到通知。

每天进步一点点。 600

Day45 Java数组09 稀疏数组

【代码】Day45 Java数组09 稀疏数组。

qq1846311374的博客 164

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Day09|狂神说java冒泡排序及稀疏数组

文中图片来自B站遇见狂神说的视频内容 https://www.bilibili.com/video/BV12J41137hu?p=59&spm_id_from=pageDriver 冒泡排序 1、比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置; 2.每一次比较,都会产生出一个最大,或者最小的数字; 3.下一轮则可以少一次排序; 4.依次循环,直到结束。 package com.hsms.array; import java.util.Arrays; public cl

qq_45811933的博客 268

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Java稀疏数组

稀疏数组 当一个数组中大部分元素为0 或为同一数值时,可以使用稀疏数组来保存该数组 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BKwkrwSe-1652884231343)(C:\Users\dell\Desktop\Java学习\笔记\稀疏数组.jpg)] package com.msj.arrays; public class ArrayDemo09 { public static void main(String[] args) { //定

masijia1997的博客 139

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

稀疏sparsearray数组的实现(Java)

java稀疏sparsearray数组的实现:需求;分析问题;应用场景;稀疏数组处理方法;稀疏数组举例说明:整体思路;代码实现

Good_Starry的博客 686

狂神JAVA学习笔记 JAVA数组09 稀疏数组

注意,下方代码不是完整的五子棋程序,只是一个利用稀疏数组的示例。 package ShuZu; public class XiShuShuZu { public static void main(String[] args) { //创建一个二维数组 11*11 0:没有棋子 1:黑棋 2:白棋 int [][] a = new int[11][11]; a[1][2] = 1; a[2][3] = 1; ...

qq_58278890的博客 232

Java编写稀疏数组

稀疏数组 当一个数组中大部分元素为0,或者为同一个值时,可以使用稀疏数组来存储数组。 稀疏数组的处理方法 1.记录数组一共有几行几列,有多少不同的值。 2.把具有不同值的元素的行列和值存放在一个小规模的数组中,该小规模数组就是稀疏数组。 如下图 如下图,这是一个棋盘,底层的数据可以用数组表示,其中棋盘没有棋子的时候可以表示为0,黑棋子可以表示为1,蓝色棋子表示为2。所以,当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来存放该数组。 得到的稀疏数组是 row col val

CL_1822SX的博客 168

java数组08:稀疏数组

当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方式是:记录数组一共有几行几列,有多少个不同值把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模如下图:左边是原始数组,右边是稀疏数组//1.创建一个二维数组11*11 0:没有棋子, 1:黑棋 2:白棋//输出原始的数组System.out.println("输出原始的数组");//转换为稀疏数组保存//获取有效值的个数int sum=0;

2301_77129712的博客 423

Java 稀疏数组

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

WYyyyyyy_1998的博客 417

数据结构01--稀疏数组

数据结构01--稀疏数组稀疏数组转换思路二维数组转稀疏数组稀疏数组转二维数组代码实现 稀疏数组 基本介绍:当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 第一行:记录数组共有几行,几列,多少个不同的值; 把具有不同值的元素的行,列,值,记录在一个小规模的数组中,从而缩小程序的规模。 处理方法: 记录数组一共有几行几列,有多少个不同的值; 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模。 示例:五子棋的存盘退出及续上盘功能。存在很多

weixin_39133501的博客 270
上一篇: Java数组08:冒泡排序
下一篇: 面相对象01:什么是面相对象
maby_
博客等级 码龄19年 15粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值