题解 | #清除行列# -- 模拟题
清除行列
http://www.nowcoder.com/practice/c95aac1506574dfc8ad44c3939c6739d
模拟,记录需要清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;
}
}