将0所在行列清零
Posted nuist__NJUPT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将0所在行列清零相关的知识,希望对你有一定的参考价值。
将0所在行列清零
将二维数组的中0元素的所在行与列的所有元素置为0.
样例输入:
3 4
1 2 0 4
3 4 5 7
1 3 4 6
样例输出:
0 0 0 0
3 4 0 7
1 3 0 6
import java.util.Scanner;
public class Matrix {
public static void solve(int [][]matrix){
int [] row = new int [matrix.length] ;
int [] column = new int [matrix[0].length] ;
for(int i=0; i<matrix.length; i++){
for(int j=0; j<matrix[0].length; j++){
if(matrix[i][j] == 0){ //标记数组元素为0的行与列
row[i] = 1 ;
column[j] = 1 ;
}
}
}
for(int i=0; i<matrix.length; i++){
for(int j=0; j<matrix[0].length; j++){
if(row[i] == 1 || column[j] == 1){ //只要该行或者列被标记,则元素置零处理
matrix[i][j] = 0 ;
}
}
}
for(int i=0; i<matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++) {
System.out.print(matrix[i][j] + " ") ;
}
System.out.println() ;
}
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in) ;
int M = input.nextInt() ;
int N = input.nextInt() ;
int [][] matrix = new int [M][N] ;
for(int i=0; i<M; i++){
for(int j=0; j<N; j++){
matrix[i][j] = input.nextInt() ;
}
}
solve(matrix) ;
}
}
以上是关于将0所在行列清零的主要内容,如果未能解决你的问题,请参考以下文章