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-面试算法经典-Java实现】【070-Set Matrix Zeroes(矩阵置零)】

【070-Set Matrix Zeroes(矩阵置零)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a m x n matrix, if an eleme...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月09日 06:34
  • 2251

算法系列——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.cli...
  • ylyg050518
  • ylyg050518
  • 2017年08月10日 09:15
  • 112

Grokking Algorithms 算法图解 一本基于Python的算法科普读本

Grokking Algorithms算法图解是由美国软件工程师Aditya Bhargava写的一本算法科普读物,由图灵教育引进,组织翻译之后17年三月份正式出版,目前来说知名度还不是很高。 毕...
  • GeneralLi95
  • GeneralLi95
  • 2017年06月01日 10:26
  • 601

LeetCode | 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. cli...
  • a45872055555
  • a45872055555
  • 2014年08月11日 23:47
  • 634

LeetCode—Set Matrix Zeroes 矩阵数组值为0,至行,列为0

Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. 题目没...
  • xietingcandice
  • xietingcandice
  • 2015年04月11日 17:32
  • 567

LeetCode 73 Set Matrix Zeroes(设矩阵元素为0)(Array)(*)

翻译给定一个mmxnn的矩阵matrix,如果其中一个元素为0,那么将其所在的行和列的元素统统设为0。要求就地计算。跟进:你使用了额外的空间吗?一个直接的解决方案是使用O(mn)O(mn)的空间,但这...
  • NoMasp
  • NoMasp
  • 2016年08月06日 23:07
  • 1376

麻省理工学院《算法导论》(MIT - Introduction to Algorithms)

关于课本的介绍如下: 本书自第一版出版以来,已经成为世界范围内广泛使用的大学教材和专业人员的标准参考手册。本书全面论述了算法的内容,从一定深度上涵盖了算法的诸多方面,同时其讲授和分析方法又兼顾了...
  • ningyaliuhebei
  • ningyaliuhebei
  • 2014年04月02日 17:32
  • 920

《算法》第4版(Algorithms Fourth Edition)在Eclipse下的重定向与管道问题

《算法》第4版(Algorithms Fourth Edition) 人民邮电出版社 在本书中的示例中,Java程序可以从命令行参数和标准输入流的抽象字符流中获取输入,但我们日常用的最多的环境是在Wi...
  • huanghxyz
  • huanghxyz
  • 2017年06月25日 23:04
  • 397

Set Matrix Zeroes 行列置零 常量空间(重)

题目: 点击打开链接 解答:
  • skyoceanlover
  • skyoceanlover
  • 2014年08月24日 20:37
  • 361

Algorithms(week 1,普林斯顿大学公开课)

如需视频,课件资料等,请留言,留下email 设计一个算法的步骤:Steps to developing a usable algorithm. ・Model the problem. ・Fin...
  • lemon89
  • lemon89
  • 2016年02月02日 01:28
  • 1445
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Algorithms—73.Set Matrix Zeroes
举报原因:
原因补充:

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