将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所在行列清零的主要内容,如果未能解决你的问题,请参考以下文章

清除行列

1.7数组-清除行列

C#/VB.NET 获取Excel中图片所在的行列坐标位置

Java算法之矩阵中出现指定数字的同行同列数字清零

Excel选中单元格时自动高亮所在行列

p99 矩阵置零(leetcode 73)