leetcode Set Matrix Zeroes 代码解析
2015-11-29 12:47
295 查看
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.
使用O(1)空间方法:使用原数组第一行和第一列记录0 的位置信息
将 0 映射到第一行和第一列,使用col 和row 分别记录第一行和第一列是否有0出现
class Solution {
public:
int m,n;
void setZeroes(vector<vector<int> >& matrix) {
int col=0,row=0;
for(int i=0;i<matrix.size();i++)
if(matrix[i][0]==0)
col=1;
for(int i=0;i<matrix[0].size();i++)
if(matrix[0][i]==0)
row=1;
for(int i=1;i<matrix.size();i++)
for(int j=1;j<matrix[0].size();j++)
if(matrix[i][j]==0)
matrix[i][0]=0,matrix[0][j]=0;
for(int i=1;i<matrix.size();i++)
if(matrix[i][0]==0)
for(int j=1;j<matrix[0].size();j++)
matrix[i][j]=0;
for(int i=1;i<matrix[0].size();i++)
if(matrix[0][i]==0)
for(int j=1;j<matrix.size();j++)
matrix[j][i]=0;
if(row)
for(int i=0;i<matrix[0].size();i++)
matrix[0][i]=0;
if(col)
for(int i=0;i<matrix.size();i++)
matrix[i][0]=0;
}
};
开辟一个长为m+n的数组标记每一行每一列是否出现0.
使用O(1)空间方法:使用原数组第一行和第一列记录0 的位置信息
将 0 映射到第一行和第一列,使用col 和row 分别记录第一行和第一列是否有0出现
class Solution {
public:
int m,n;
void setZeroes(vector<vector<int> >& matrix) {
int col=0,row=0;
for(int i=0;i<matrix.size();i++)
if(matrix[i][0]==0)
col=1;
for(int i=0;i<matrix[0].size();i++)
if(matrix[0][i]==0)
row=1;
for(int i=1;i<matrix.size();i++)
for(int j=1;j<matrix[0].size();j++)
if(matrix[i][j]==0)
matrix[i][0]=0,matrix[0][j]=0;
for(int i=1;i<matrix.size();i++)
if(matrix[i][0]==0)
for(int j=1;j<matrix[0].size();j++)
matrix[i][j]=0;
for(int i=1;i<matrix[0].size();i++)
if(matrix[0][i]==0)
for(int j=1;j<matrix.size();j++)
matrix[j][i]=0;
if(row)
for(int i=0;i<matrix[0].size();i++)
matrix[0][i]=0;
if(col)
for(int i=0;i<matrix.size();i++)
matrix[i][0]=0;
}
};
相关文章推荐
- c语言字符数组与字符串的使用详解
- Java-泛型
- java继承深入解析
- C#与C++的混合编程 之二 使用非托管dll 导出标准函数
- Java-文件操作与随机访问文件
- 用python玩转selenium:3-selenium常用操作
- 用python玩转selenium:2-入门实例及分析
- PHP可变函数学习小结
- 用python玩转selenium:1-准备环境
- 将Android studio 项目导入eclipse的学习过程
- Java 字节流
- Java 集合框架
- 趣学Python-教孩子学编程--第八章
- Java进阶之路
- 读取文本文件,打印到屏幕
- Java- Hibernate 多对一关系映射
- acm2028
- PHP可变变量学习小结
- Java-Hibernate - EJB 注解映射
- python 字符串,数组,元祖操作基础巩固。