Algorithms—73.Set Matrix Zeroes

原创 2015年07月09日 21:38:32

思路:首先是O(m+n)空间复杂度的方法,新开辟空间,然后遍历所有的点,如果有那个点的值为0,则将其横纵坐标的值记录进去。然后是空间复杂度为常数的。即把这些横纵坐标记录在原数组中,改为0即可。但是需要注意的是2点,1.在查询前先判断(x,0)和(0,y)两条线上是否存在0的点。2.重新遍历赋值的时候值修改除上述2条线的内部结构。3.再根据1中查询的结果决定是否修改这2条线。

public class Solution {
    public void setZeroes(int[][] matrix) {
    	boolean f=true;
    	for (int i = 0; i < matrix.length; i++) {
			if (matrix[i][0]==0) {
				f=false;
				break;
			}
		}
    	boolean l=true;
    	for (int i = 0; i < matrix[0].length; i++) {
			if (matrix[0][i]==0) {
				l=false;
			}
		}
        for (int i = 0; i < matrix.length; i++) {
			for (int j = 0; j < matrix[i].length; j++) {
				if (matrix[i][j]==0) {
					matrix[i][0]=0;
					matrix[0][j]=0;
				}
			}
		}
        for (int i = 1; i < matrix.length; i++) {
			for (int j = 1; j < matrix[i].length; j++) {
				if (matrix[i][0]==0||matrix[0][j]==0) {
					matrix[i][j]=0;
				}
			}
		}
        if (!f) {
			for (int i = 0; i < matrix.length; i++) {
				matrix[i][0]=0;
			}
		}
        if (!l) {
        	for (int i = 0; i < matrix[0].length; i++) {
				matrix[0][i]=0;
			}
		}
    }
}


耗时:396ms,中游。


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

【LeetCode】73. Set Matrix Zeroes解法及注释

73. Set Matrix Zeroes Given a m x n matrix, if an element is 0, set its entire row and column to ...

[LeetCode]73.Set Matrix Zeroes

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

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

LeetCode(73)Set Matrix Zeroes

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

Leetcode NO.73 Set Matrix Zeroes

本题要求如下: Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in ...

Leetcode OJ 73 Set Matrix Zeroes [Medium]

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

Leetcode 73. Set Matrix Zeroes (Medium) (cpp)

Leetcode 73. Set Matrix Zeroes (Medium) (cpp)

leetcode_question_73 Set Matrix Zeroes

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

LeetCode 73 Set Matrix Zeroes(Python详解及实现)

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

[leetcode] 【数组】73. Set Matrix Zeroes

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

Leetcode 73 - Set Matrix Zeroes(Array)

题意一个数字是用vector表示的,求这个数字加1得到的vector思路设置进位标志位adc模拟一下就好,注意最前面可能会插入一个1代码73 - Set Matrix Zeroes题意一个矩阵,如果位...
  • Lzedo
  • Lzedo
  • 2017-02-19 15:59
  • 209
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)