二维数组中位置为0所在行列设置为0

xiaoxiao2021-02-28  58

一个数组中如果有0则把该行与该列都设置为0求最终结果:

个人思路:

public class Test { public static void main(String[] args){ int[][] arr = {{1,0,1},{1,1,1},{1,0,1}}; manageArr(arr); printArr(arr); } private static void manageArr(int[][] arr){ int value = -1; for (int i=0,len = arr.length;i<len;++i) { inner:for(int j = 0,childLen = arr[i].length;j<childLen;++j){ value = arr[i][j]; if(value == 0){ int x = 0; for(;x<i;++x){ if(arr[x][j] !=0) { arr[x][j] = -1; } } for(x = 0;x<j;++x){ if(arr[i][x] !=0) { arr[i][x] = -1; } } } else { int x = 0; for(;x<i;++x) { if(arr[x][j] == 0){ arr[i][j] = -1; continue inner; } } for(x = 0;x<j;++x ) { if(arr[i][x] == 0){ arr[i][j] = -1; continue inner; } } } } } for(int i = 0,len = arr.length;i<len;++i){ for(int j = 0,childLen = arr[i].length;j<childLen;++j){ if(arr[i][j]==-1){ arr[i][j]=0; } } } } private static void printArr(int[][] arr){ for(int[] child:arr){ for(int item:child){ System.out.print(item+" "); } System.out.println(); } } }

运行结果:

抛砖引玉,请大家多多指教。

转载请注明原文地址: https://www.6miu.com/read-52780.html

最新回复(0)