模拟,记录需要清0的行和列(存在col和row中) 然后遍历记录进行清0操作

import java.util.*;

public class Clearer {
    public int[][] clearZero(int[][] mat, int n) {
        // write code here
        ArrayList<Integer> col = new ArrayList(); // 记录需要清零的行
        ArrayList<Integer> row = new ArrayList(); // 记录需要清零的列
        for ( int i = 0; i < n; ++i ) {
            for ( int j = 0; j < n; ++j ) {
             	//记录清零的行和列
                if (mat[i][j] == 0) {
                    col.add(i);
                    row.add(j);
                }
            } 
        }
        // 进行清零操作 分别对行和列操作
        for (Integer a:col) {
            for ( int i = 0; i < n; ++i ) {
                mat[a][i] = 0;
            }
        }
        for (Integer a:row) {
            for ( int i = 0; i < n; ++i ) {
                mat[i][a] = 0;
            }
        }
        return mat;
    }
}