Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.
代码如下:
class Solution {
public:
void setZeroes(vector<vector<int>>& matrix) {
int m = matrix.size();
int n = matrix[0].size();
int col0 = 1;
for(int i=0;i<m;i++)
{
if(matrix[i][0] == 0) col0 = 0;
for(int j=1;j<n;j++)
{
if(matrix[i][j] == 0)
matrix[i][0] = matrix[0][j] = 0;
}
}
for(int i=m-1;i>=0;i--)
{
for(int j=n-1;j>=1;j--)
{
if(matrix[i][0] == 0 || matrix[0][j] == 0)
matrix[i][j] = 0;
}
if(col0 == 0) matrix[i][0] = 0;
}
}
};
本文介绍了一种高效的算法,用于处理给定的m x n矩阵。当矩阵中某个元素为0时,该算法能够将包含该元素的整行和整列的所有元素设置为0,并且操作是在原地完成的,即不使用额外的空间。
424

被折叠的 条评论
为什么被折叠?



