您的位置:首页 > 其它

73. Set Matrix Zeroes

2016-04-30 23:57 183 查看
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.

click to show follow up.

Subscribe to see which companies asked this question

这题目关键是要求O(1)的空间。

可以使用第1行,第1列来保存数据信息。

class Solution {
public:
void setZeroes(vector<vector<int> > &matrix) {

bool firstrow = false;
bool firstcol = false;
for(int j = 0; j < col; ++j)
if(matrix[0][j] == 0){
firstrow = true;
break;
}
for(int i = 0; i < row; ++i)
if(matrix[i][0] == 0){
firstcol = true;
break;
}

for(int i = 1; i < row; ++i)
for(int j = 1; j < col; ++j){
if(matrix[i][j] == 0) {
matrix[i][0] = 0;
matrix[0][j] = 0;
}
}

for(int i = 1; i < row; ++i)
for(int j = 1; j < col; ++j)
if(matrix[i][0] == 0 || matrix[0][j] == 0)
matrix[i][j] = 0;

if(firstrow){
for(int j = 0; j < col; ++j)
matrix[0][j] = 0;
}
if(firstcol){
for(int i = 0; i < row; ++i)
matrix[i][0] = 0;
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: