Set Matrix Zeroes
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?
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?
class Solution {
public:
void setZeroes(vector<vector<int> > &matrix) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int rowSize = matrix.size();
if(rowSize == 0) return;
int colSize = matrix[0].size();
if(colSize == 0) return;
int i, j;
int k;
int impossibleValue = -10000;
for(i=0; i<rowSize; i++){
for(j=0; j<colSize; j++){
if(matrix[i][j]==0){
matrix[i][j] = impossibleValue;
}
}
}
for(i=0; i<rowSize; i++){
for(j=0; j<colSize; j++){
if(matrix[i][j] == impossibleValue){
for(k=0; k<colSize; k++){
if(matrix[i][k]!=impossibleValue)
matrix[i][k] = 0;
}
for(k=0; k<rowSize; k++){
if(matrix[k][j]!=impossibleValue)
matrix[k][j] = 0;
}
}
}
}
for(i=0; i<rowSize; i++){
for(j=0; j<colSize; j++){
if(matrix[i][j] == impossibleValue)
matrix[i][j] = 0;
}
}
}
};
No comments:
Post a Comment