示例 1:
输入:
[
[1,1,1],
[1,0,1],
[1,1,1]
]
输出:
[
[1,0,1],
[0,0,0],
[1,0,1]
]
示例 2:
输入:
[
[0,1,2,0],
[3,4,5,2],
[1,3,1,5]
]
输出:
[
[0,0,0,0],
[0,4,5,0],
[0,3,1,0]
]
作者:LeetCode
链接:https://leetcode.cn/leetbook/read/array-and-string/ciekh/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
每次找到等于零的那一个把对应的行和列都置零即可,但是会出现一个问题就是到最后所有的元素都变成零了;
因此,既然打算将整行和整列清零,因此并不需要标记录它是cell[2][4](行2,列4),只需要知道行2有个元素为0,列4有个元素为0.不管怎样,整行和整列都要清零,又何必要记录零元素的确切位置?

作者:DonYong
链接:https://leetcode.cn/leetbook/read/array-and-string/ciekh/?discussion=JGA6Zo
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
考虑到了如果不做标记话会全部置零的情况,但一开始是对确切位置的记录,但是大佬的思路就显得巧妙了,对行和列单独记录。
得以借鉴!
- package Day2;
-
- public class Test3 {
- public static void SetZeros(int[][] matrix) {
- boolean[] row= new boolean[matrix.length];
- boolean[] column= new boolean[matrix.length];
- int m=matrix.length;
- int n=matrix[0].length;
- for(int i=0;i
- for(int j=0;j
- if(matrix[i][j]==0) {
- row[i]=true;
- column[j]=true;
- }
- }
- }
-
- for(int i=0;i
- for(int j=0;j
- if(row[i]||column[j]) {
- matrix[i][j]=0;
- }
- System.out.print(matrix[i][j]);
- }
- System.out.println();
- }
- }
-
- public static void main(String[] args) {
- int[][] a= {{0,1,2},{1,2,3},{0,5,6}};
- SetZeros(a);
- }
-
- }
-
相关阅读:
Docker容器:compose容器编排
不要高估迷信自己的毅力:交钱后坚持培训的比例不到1%
v-html有什么问题
数据结构 第2章:线性表
LINUX中命令
学好Python-新手小白如何做?
史上最强,Jmeter性能测试-性能场景设计实例(详全)
web前端期末大作业:基于html化妆品购物商城项目的设计与实现——化妆品官方网站设计与实现(HTML+CSS+JS)
【Java SE】 详解java访问限定符
【Linux】之如何卸载干净zabbix服务?(超详细)
-
原文地址:https://blog.csdn.net/m0_64132509/article/details/136607335