Set Matrix Zeros
来源:互联网 发布:can数据传递系统是根据 编辑:程序博客网 时间:2024/05/16 11:13
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.
Follow up:
Did you use extra space?
A straight forward solution using O(mn) space is probably a bad idea.
A simple improvement uses O(m + n) space, but still not the best solution.
Could you devise a constant space solution?
We could use the first row as the storage. In each line, if we find some number is zero, we set this line as zero, and set the corresponding col in first row as 0.
In my original code, I did not use the first row as storage. I store the last row which I set as zero. In that row, I store all the col which will be set as zero later
class Solution {public: void setZeroes(vector<vector<int> > &matrix) { // Start typing your C/C++ solution below // DO NOT write int main() function if(matrix.size()== 0 || matrix[0].size() == 0) return; int rowNum = matrix.size(), colNum = matrix[0].size(), rowSet = -1; int i, j; for(i=0; i<rowNum; i++){ for(j=0; j<colNum; j++) if(matrix[i][j] == 0) break; if(j < colNum){ if(rowSet == -1) { rowSet = i; for(j=0; j<colNum; j++) if(matrix[i][j]) matrix[i][j] = 0; else matrix[i][j] = 1; } else { for(j=0; j<colNum; j++) if(matrix[rowSet][j] || !matrix[i][j]) matrix[i][j] = 1; else matrix[i][j] = 0; rowSet = i; } } } if(rowSet != -1) for(j=0; j<colNum; j++) if(matrix[rowSet][j]) for(i=0; i<rowNum; i++) matrix[i][j] = 0; }};
- Set Matrix Zeros
- [LeetCode] Set Matrix Zeros
- set matrix zeros
- set matrix zeros
- [Leetcode] Set Matrix Zeros
- 【Leetcode】Set matrix zeros
- LeetCode - Set Matrix Zeros
- leetcode_073 Set Matrix Zeros
- LeetCode---set-matrix-zeros
- 73-Set Matrix Zeros
- [LeetCode] Set Matrix Zeros
- LeetCode--Set matrix zeros
- java实现 Set matrix zeros
- LeetCode 73:Set Matrix Zeros
- LeetCode - 73. Set Matrix Zeros
- leetcode-73 set matrix zeros
- LeetCode 题解(21): Set Matrix Zeros
- Leetcode_c++:Set Matrix Zeros (073)
- DrectX托管net4版本异常
- Kinect测量身高
- C语言快速交换2数字
- Starling中Touch TypeError: Error #1009
- Canopy算法原理
- Set Matrix Zeros
- windows 环境安装 MySQL-python 遇到错误 serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options['regi
- 使用android快速开发框架afinal的FinalDb操作android数据库
- IOS开发(55)之为普通App添加Storyboard
- js/jquery解析json和数组格式的方法介绍
- java中创建对象,初始化对象,实例化对象的解释
- 如何进行部门间合作
- tomcat server.xml详解
- hibernate实现分页