题目:
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.
Follow up:
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?
思路:首先自己想到的是用2个数组来保存行列是否需要清零,然后再根据这个清零,空间复杂度为m+n
要是空间复杂度为1,则是用matrix[0][i]和matrix[j][0]来替代数组功能,所以得先用2个标记判断第一行和第一列是否需要清零。然后遍历的时候不遍历第一行以及第一列,若matrix[i][j]=0,则matrix[0][i]和matrix[j][0]置零。
赋值的时候,也是先不处理第一行和第一列,最后根据标记来给第一行第一列赋值。