稀疏数组与队列

在实际需求中  当大部分数组元素为0或者为相同值的时候

可以用一个小规模的数组代替 起到简化的作用 下面分析思路并实现代码

思路分析:

        1.首先遍历原数组 找到这个数组中特殊元素的个数 作为稀疏数组的大小

        2.创建新的稀疏数组 将有效数据存入

public class sparsearray {
    public static void main(String[] args) {
        //创建一个11*11的围棋棋盘用二维数组代替 其中分别有两个棋子
        int chess[][] = new int[11][11];
        chess[1][2] = 1;
        chess[2][4] = 2;
        int sum=0;
        //分别用1,2代表两个不同的棋子
        for (int j = 0; j < 11; j++) {
            for (int k = 0; k < 11; k++) {
                System.out.print(chess[j][k]+"  ");
                if(chess[j][k]!=0){
                    sum++;
                }
            }
            System.out.println();
        }
        int sparsearr[][]=new int[sum+1][3];
        //给稀疏数组赋值
        sparsearr[0][0]=11;
        sparsearr[0][1]=11;
        sparsearr[0][2]=sum;
        //第一行存储原来数组的行 列 有效值
        int count=0;
        for (int j = 0; j < 11; j++) {
            for (int k = 0; k < 11; k++) {
                if(chess[j][k]!=0){
                    count++;
                    sparsearr[count][0]=j;
                    sparsearr[count][1]=k;
                    sparsearr[count][2]=chess[j][k];
                }
            }
        }
        System.out.println("-----稀疏数组-----");
        for(int i=0;i< sparsearr.length;i++){
            System.out.println(sparsearr[i][0]+" "+sparsearr[i][1]+"  "+sparsearr[i][2]);
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值