题目链接:https://leetcode.com/problems/set-matrix-zeroes/
思路一:这个题目O(mn)的空间复杂度来做十分简单,运行效率中等,不废话直接上代码:
class Solution {
public static boolean[][] visited;//如果原来不是0被强制改为0的访问记录
public void setZeroes(int[][] matrix)
{
int rows=matrix.length;
int cols=matrix[0].length;
visited=new boolean[rows][cols];
for(int i=0;i<rows;i++)
{
for(int j=0;j<cols;j++)
{
if(matrix[i][j]==0 && !visited[i][j])
{
for(int row=0;row<rows;row++)
{
if(matrix[row][j]!=0)
{
matrix[row][j]=0;
visited[row][j]=true;
}
}
for(int col=0;col<cols;col++)
{
if(matrix[i][col]!=0)
{
matrix[i][col]=0;
visited[i][col]=true;
}
}
}
}
}
}
}