矩阵清零--进军硅谷

给定一个二维的m*n矩阵,如果某个元素为0,那么将其所在行和列的所有元素设为0。不允许使用额外空间。

刚看到这题,只想到开两个数组,一个用来记录要设为0的行,一个用来记录要设为0的列,但是这需要使用额外空间。书中解法,利用了已有数组,首先找到一个位0的元素,记录其所在的行与列的位置,然后在后面的扫描过程中,如果某个元素为0,则把第一个为0的行与此元素的列的位置设为0,把第一个为0的列与此元素的行的位置设为0,第二遍扫描的时候,跳过第一个为0的行与列的元素,如果某个元素在第一个为0元素的行与此元素的列或者第一个为0元素的列与此元素的行的位置为0则把此元素设为0,最后设置第一个为0的元素的行与列全为0.

时间: 2024-12-15 20:06:46

矩阵清零--进军硅谷的相关文章

将矩阵中为0的元素所在行列清零

public class setZero { static void print(int [][]a){ for(int i=0;i<a.length;i++){ for(int j=0;j<a[i].length;j++){ System.out.print(a[i][j]+" "); } System.out.println(); } } /*static void SetZero(int [][]a, int i, int j){ for(int k=0; k<

将矩阵中0元素所对应的行列都清零

编写一个算法,若M*N矩阵中某个元素为0,则将其所在的行与列清零. void setZeros(int **matrix, int lrow, int lcol) { bool *row = new bool[lrow]; bool *column = new bool[lcol]; //记录值为0的元素所在的行索引和列索引 for (int i = 0; i < lrow; i++) { for (int j = 0; j < lcol; j++) { if (matrix[i][j] ==

(网管工作日志)Canon 清零

公司打印机canon ip 1980最近一直在报错:废墨盒已满,本来想找到这个废墨盒清理一下,可找了半天还是不确定找到的对不对..可打印机不能不用,所以就按网上说的方法将打印机清零,效果不错. 方法: 1.在打印时提示废墨盒已满时,将打印机电源拔掉,然后按多次电源开关,将电放完为止: 2.按住电源开关不放,并同时接上电源线,5秒过后(反正我是5秒左右,也可以按久些),松开电源开关,这时会出现一个打印机副本: 3.运行清零软件.打印机为ip1980.清零软件链接http://down.51cto.

使用CSS清零

使用 CSS 清零(CSS Reset)可以实现跨浏览器兼容. CSS 清零可以消除不同浏览器对 margin,padding 这些属性的默认表现,可以更容易控制诸如对齐,间隙等等问题. 使用 Eric Meyer's CSS 清零代码.代码如下: 1 /* http://meyerweb.com/eric/tools/css/reset/ 2 v2.0 | 20110126 3 License: none (public domain) 4 */ 5 6 html, body, div, sp

常见位操作:获取,设置,清零

1 /*常见位操作:获取,设置,清零 2 * 3 * */ 4 public class BitGet { 5 /* 6 * 该函数实现获取功能 7 * 先将1左移动i位,左移动0位变成了00000001, 8 * 然后再和Num十进制12转化为二进制00001100进行&运算, 9 * 00000001 如果是左移动两位就为 00000100 10 * 00001100 00001100 11 * -------- -------- 12 * 00000000 00000100 13 * 从而

(每日算法)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. 最直观的解法就是开辟一个新的矩阵,当原矩阵存在零元素的时候,就将新矩阵的对应行和列置为零.这样空间复杂度较高,也是题目不允许的. 题目的难点就在于,如果遇到零元素之后马上在矩阵上操作,将所在的行和列都置为零.在接下来的遍历中,如果你再遇到零,你讲不

现场DCS仪表清零后报表每小时用量的SQL处理方法(列转行)

最近我在做项目的时候,在现场碰到客户煤气仪表每天累积量达到几百万,一个月累计下来表的度数就要超出仪表的上限,所以客户每个月25号必须进行一次清零.这样仪表的度数就重新从零开始计算.在统计每小时煤气产量的时候,现场如果是手工抄数就不要紧,只需要做一下简单的公式计算即可 [产量]=[清零时表的读数]-[上个整点读数]+[当前点清零后的读数]即可.但是对于一个软件系统来说,没有人的大脑进行干预可就没有那么简单,他需要知道仪表是否清零,得知道什么时候清的零,还需要知道清零时候的读数.知道这三点才能提供软

各种投影灯泡的清零方法!

刚开学,学校的多媒体坏了很多,除了新安装的12套,其余的基本都 有问题. 连续2个星期,基本都 在维修多媒体中,很忙,很累. 好在是,新招入的小徐同学,还 是很给力的,够勤快,脑子也很灵光,是个好苗子. 这两天,接连遇到几次要给投影机清零 的问题. 于是收集整理了一下各种投影机清零的方法. ******************************** sharp DLP投影机的清零 待机状态时同时按"right"+"down"+"enter"

【LeetCode-面试算法经典-Java实现】【070-Set Matrix Zeroes(矩阵置零)】

[070-Set Matrix Zeroes(矩阵置零)] [LeetCode-面试算法经典-Java实现][所有题目目录索引] 原题 Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. 题目大意 给定一个m*n的矩阵,如果某个位置是0.将对应的行和列设置为0. 解题思路 先对矩阵进行扫描,标记要进行置0的行和列,对要进行置0的行在第0列上进行标记,对置0的列在