zoukankan      html  css  js  c++  java
  • 将二维数组转为稀疏数组

    public class SparseArray {
    	/**
    	 * 用二维数组实现一个棋盘,1代表黑子,2代表蓝子
    	 */
    	public static void main(String[] args) {
    		/**
    		 * 二维数组
    		 */
    		int[][] chessArray1 = new int[11][11];
    		chessArray1[1][2] = 1;
    		chessArray1[2][3] = 2;
    		for (int[] row : chessArray1) {
    			for (int data : row) {
    				System.out.printf("%d	", data);
    			}
    			System.out.println();
    		}
    		System.out.println("_________________________________________________________________________________");
    		/**
    		 * 将此二维数组转为稀疏数组
    		 */
    		// 先遍历二维数组,得到有几个非零数据
    		int sum = 0;
    		for (int[] row : chessArray1) {
    			for (int data : row) {
    				if (data != 0) {
    					sum++;
    				}
    			}
    		}
    		// 构造稀疏数组
    		int[][] sparseArray = new int[sum + 1][3];
    		sparseArray[0][0] = chessArray1.length;
    		sparseArray[0][1] = chessArray1[0].length;
    		sparseArray[0][2] = sum;
    		// 遍历二维数组,并将非零元素填充到稀疏数组中
    		int count = 0;
    		for (int i = 0; i < chessArray1.length; i++) {
    			for (int j = 0; j < chessArray1[0].length; j++) {
    				if (chessArray1[i][j] != 0) {
    					count++;
    					sparseArray[count][0] = i;
    					sparseArray[count][1] = j;
    					sparseArray[count][2] = chessArray1[i][j];
    				}
    			}
    		}
    		// 打印稀疏数组
    		for (int[] row : sparseArray) {
    			for (int data : row) {
    				System.out.printf("%d	", data);
    			}
    			System.out.println();
    		}
    	}
    
    }
    

      

  • 相关阅读:
    vSphere笔记01~02
    【科普】人眼到底等于多少像素
    《标题党》自我修炼的10个秘籍
    说说云盘背后的黑科技!
    用shell批量编码转换
    Java课设--俄罗斯方块Tetris
    教程,Python图片转字符堆叠图
    谈谈索引的哲学思想
    MySQL索引实战经验总结
    博客要转型啦
  • 原文地址:https://www.cnblogs.com/dashenaichicha/p/12675087.html
Copyright © 2011-2022 走看看