一个数组中如果有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();
}
}
}
运行结果:
抛砖引玉,请大家多多指教。