[LeetCode]Set Matrix Zeroes

来源:互联网 发布:双色球出号绝密算法 编辑:程序博客网 时间:2024/06/18 10:17

Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.

click to show follow up.

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?

题解:使用两个boolean数组保存为0的位置。

public class Solution73 { public void setZeroes(int[][] matrix) {  boolean rows[] = new boolean[matrix.length]; boolean cols[] = new boolean[matrix[0].length];  for(int i=0; i<matrix.length; i++){ for(int j=0; j<matrix[0].length; j++){  if(matrix[i][j] == 0){  rows[i] = true; cols[j] = true; } } }  for(int i=0; i<rows.length; i++){  if(rows[i]){ for(int k=0; k<matrix[0].length; i++){ matrix[i][k] = 0; } } } for(int i=0; i<cols.length; i++){  if(cols[i]){ for(int k=0; k<matrix.length; i++){ matrix[k][i] = 0; } } } }}
这不是最好的空间复杂度O(n*m),不知道怎么用O(1)的解法。

0 0
原创粉丝点击