LeetCode - Set Matrix Zeroes
来源:互联网 发布:鬼宿舍知乎 编辑:程序博客网 时间:2024/05/29 18:12
https://leetcode.com/problems/set-matrix-zeroes/
因为要求用constant extra space,所以用矩阵第一行和列存储剩余行列是非该设为0,注意,如果第一行第一列含0的话,说明第一行或列,以及对应的列或行应该设0,所以这一位置标志位就已经是0了,因此第一行列的值不会影响后面扫描的结果,但是第一行列本身的值会被标志位覆盖掉。
另外的方法就是使用两个新的数组,分别记录行标志和列标志,这样第一行列的值就不会被覆盖了,但是这样空间复杂度是O(m+n)
第一种方法代码如下:
public void setZeroes(int[][] matrix) { int m = matrix.length; int n = matrix[0].length; boolean frow0 = false; boolean fcol0 = false; for(int i=0; i<n; i++){ if(matrix[0][i]==0){ frow0 = true; break; } } for(int j=0; j<m; j++){ if(matrix[j][0]==0){ fcol0 = true; break; } } for(int i=1; i<m; i++){ for(int j=1; j<n; j++){ if(matrix[i][j]==0){ matrix[i][0] = 0; matrix[0][j] = 0; } } } for(int i=1; i<m; i++){ for(int j=1; j<n; j++){ if(matrix[i][0] == 0 || matrix[0][j] == 0){ matrix[i][j]=0; } } } if(frow0==true){ for(int i=0; i<n; i++){ matrix[0][i]=0; } } if(fcol0==true){ for(int i=0; i<m; i++){ matrix[i][0]=0; } } }
0 0
- LeetCode: Set Matrix Zeroes
- LeetCode Set Matrix Zeroes
- [Leetcode] Set Matrix Zeroes
- LeetCode: Set Matrix Zeroes
- Leetcode: Set Matrix Zeroes
- [LeetCode] Set Matrix Zeroes
- [LeetCode]Set Matrix Zeroes
- [leetcode]Set Matrix Zeroes
- Leetcode:Set Matrix Zeroes
- LeetCode-Set Matrix Zeroes
- [leetcode] Set Matrix Zeroes
- LeetCode - Set Matrix Zeroes
- Set Matrix Zeroes leetcode
- 【Leetcode】Set Matrix Zeroes
- 【leetcode】Set Matrix Zeroes
- Leetcode: Set Matrix Zeroes
- Leetcode Set Matrix Zeroes
- LeetCode | Set Matrix Zeroes
- linux系统的详细启动过程
- hdoj 3790 最短路径问题
- 文件上传下载(转载)
- 励志:郑淳元破产 参加《我是歌手》紧急培训中文三周捞金
- CentOS 文件和目录管理
- LeetCode - Set Matrix Zeroes
- 条件编译
- 基于Bootstrap的Modal二次封装
- 总结一些常用的排序算法,备忘
- dispatchTouchEvent分发机制
- Lucene实战之初识Lucene
- 编程之美2: 重建二叉树
- Unity3D人物控制移动脚本编写及分析
- 多文件无刷新上传(一)