public class Solution {
public void setZeroes(int[][] matrix) {
if (matrix.length == 0) return;
boolean setFirstRowZero = false;
boolean setFirstColZero = false;
// Find zeros and use the first row and first column to record.
for (int i=0; i<matrix.length; i++){
for (int j=0; j<matrix[0].length; j++){
if (matrix[i][j] == 0){
if (i==0){
setFirstRowZero = true;
}
if (j==0){
setFirstColZero = true;
}
if (i!=0 && j!=0){
matrix[i][0] = 0;
matrix[0][j] = 0;
}
}
}
}
// Set zeros
for (int i=0; i<matrix.length; i++){
for (int j=0; j<matrix[0].length; j++){
if (i!=0 && j!=0 && (matrix[i][0]==0 || matrix[0][j]==0)){
matrix[i][j] = 0;
}
}
}
// Set first row to zeros
if (setFirstRowZero){
for (int j=0; j<matrix[0].length; j++){
matrix[0][j] = 0;
}
}
// Set first column to zeros
if (setFirstColZero){
for (int i=0; i<matrix.length; i++){
matrix[i][0] = 0;
}
}
}
}
Set Matrix Zeroes
最新推荐文章于 2018-11-18 21:38:55 发布