首页 > 其他分享 >稀疏数组

稀疏数组

时间:2022-11-29 22:14:33浏览次数:37  
标签:11 int array2 array1 稀疏 数组 out

public class ArrayDemo03 {
    //稀疏数组
    public static void main(String[] args) {
        //1.创建一个二维数组 11*11 0:没有棋子  1:黑棋  2:白旗
        int[][] array1 = new int[11][11];
        array1[1][2]= 1;
        array1[2][3]= 2;
        array1[4][7]= 11;
        //输出原始的数组
        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]
            );
        }
    }
}

image

标签:11,int,array2,array1,稀疏,数组,out
From: https://www.cnblogs.com/cyyyds/p/16936861.html

相关文章

  • 区间列表的交集 和相同的二元子数组 生成交替二进制字符串的最少操作数
    986.区间列表的交集List<int[]>list=newArrayList<>();intn=firstList.length;intm=secondList.length;inti=0;intj=0;while(i<n&&j<m){交......
  • lua获取数组的长度
    获取数组的长度对于一个数组我们通常可以使用#来获取其长度tabletest={1,2,3,5,7}print(#tabletest)------》5使用这两种方法都能得到这个数组的长度,但是如果tabletest=......
  • 自定义数组的方法
    <body><script>//自己定义数组扩展方法求和和最大值//console.dir(Array);//console.log(Array.prototype);//Array.prototyp......
  • 手写数组的方法
    <body><script>//map//Array.prototype.Mymap=function(callback){//letnewArr=[]////console.log(this);//arr[1,......
  • 数据结构(5):数组
    上一回简单的说了一下队列两个常见的应用:层次遍历以及在计算机系统中的应用,这一回,我们来看一个大家都非常熟悉的数据结构:数组!数组的定义数组是由n(n≥1)个相同类型的数据元素......
  • 计算平均值。输入十个学生的考试成绩计算平均值。(数组实现))
    #include<stdio.h>#defineN10intmain(){ inti; doublea[N],sum=0.0; sum=0.0; printf("请输入成绩:\n"); for(i=0;i<N;i++) scanf("%lf",&a[i]); for(i=0......
  • QQ连连看棋盘数组找法:
    QQ连连看棋盘数组找法:1.  附加CE  2.  内存扫描选项----选择全部,数值类型:为字节(byte)3.  索定棋盘左上角第一个格子  搜索大......
  • 动态规划-最大子数组
    1.分而治之1.分开2.求合并的值4.比较左右的与合并,返回最大值2.动态规划1.求出以每个元素开头的最大数组。d[i]:以arr[i]开头的最大数组子问题:d[i+1]=d[i]+arr[i]若后面规模更......
  • day07_java_数组
    d07Java数组(p51-p59)1.什么是数组?数组就是一组数的集合。数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后顺序排列组合而成。......
  • JS数组方法汇总 array数组元素的添加和删除
    js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^vararr=newArray();arr[0]="aaa";arr[1]="bbb......