Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.
Did you use extra space?
A straight forward solution using O(mn) space is probably a bad idea.
A simple improvement uses O(m + n) space, but still not the best solution.
Could you devise a constant space solution?
public class Solution { public void setZeroes(int[][] matrix) { int row = matrix.length; int column = matrix[0].length; int[][] clone = new int[row][column]; for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { clone[i][j] = matrix[i][j]; } } for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { if (clone[i][j] == 0) { for (int k = 0; k < row; k++) matrix[k][j] = 0; for (int k = 0; k < column; k++) matrix[i][k] = 0; } } } } }
原文地址:http://blog.csdn.net/guorudi/article/details/40588183