| public class SparseArray { |
| |
| public static void display(int arr[][]) { |
| for (int[] i : arr) { |
| for (int j : i) { |
| System.out.printf("%s\t", j); |
| } |
| System.out.println(); |
| } |
| } |
| |
| |
| |
| |
| |
| |
| public static void toSparse(int arrs[][]) { |
| |
| int nums = 0; |
| int col = arrs[0].length; |
| int row = arrs.length; |
| for (int[] arr : arrs) { |
| for (int i : arr) { |
| if (i != 0) { |
| nums++; |
| } |
| } |
| } |
| int[][] sparse = new int[nums + 1][3]; |
| sparse[0][0] = row; |
| sparse[0][1] = col; |
| sparse[0][2] = nums; |
| int index = 1; |
| for (int i = 0; i < row; i++) { |
| for (int j = 0; j < col; j++) { |
| if (arrs[i][j] != 0) { |
| sparse[index][0] = i; |
| sparse[index][1] = j; |
| sparse[index][2] = arrs[i][j]; |
| index++; |
| } |
| } |
| } |
| System.out.println("二维转稀疏数组:"); |
| display(sparse); |
| System.out.println(); |
| sparse(sparse); |
| } |
| |
| |
| |
| |
| public static void sparse(int sparseArr[][]) { |
| int row = sparseArr[0][0], |
| col = sparseArr[0][1], |
| nums = sparseArr[0][2]; |
| |
| int[][] arr = new int[row][col]; |
| for (int i = 1; i <= nums; i++) { |
| int[] ints = sparseArr[i]; |
| arr[ints[0]][ints[1]] = ints[2]; |
| } |
| System.out.println("稀疏数组还原:"); |
| display(arr); |
| System.out.println(); |
| } |
| |
| public static void main(String[] args) { |
| int arr[][] = new int[5][10]; |
| arr[1][3] = 4; |
| arr[1][2] = 2; |
| arr[2][3] = 3; |
| arr[4][2] = 5; |
| toSparse(arr); |
| System.out.println("原始数组:"); |
| display(arr); |
| } |
| } |
output:
| 二维转稀疏数组: |
| 5 10 4 |
| 1 2 2 |
| 1 3 4 |
| 2 3 3 |
| 4 2 5 |
| |
| 稀疏数组还原: |
| 0 0 0 0 0 0 0 0 0 0 |
| 0 0 2 4 0 0 0 0 0 0 |
| 0 0 0 3 0 0 0 0 0 0 |
| 0 0 0 0 0 0 0 0 0 0 |
| 0 0 5 0 0 0 0 0 0 0 |
| |
| 原始数组: |
| 0 0 0 0 0 0 0 0 0 0 |
| 0 0 2 4 0 0 0 0 0 0 |
| 0 0 0 3 0 0 0 0 0 0 |
| 0 0 0 0 0 0 0 0 0 0 |
| 0 0 5 0 0 0 0 0 0 0 |
| |
| Process finished with exit code 0 |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现