兩種方法時間複雜度都為o(mn)
用兩個容器儲存為0的行和列
class對於第0行和第0列的資料如果有0,則標記isrow=true, iscol=true來記錄是否為0;solution }}
while(!rse.empty())
rse.erase(rse.begin());
}while(!cse.empty())
cse.erase(cse.begin());}}
};
對於1~m行和1~n列的資料如果有0,則將其標註在第0行,第0列;即
i : 1~m-1c++ code:j:
1~n-1
if(matrix[i][j]==0
) matrix[i][
0]=0,matrix[0][j]=0;
classsolution
}for(int i=0;i)
}//標記1~n列是否為0,將結果放入第0行和第0列;
for(int i=1;i)}}
//先將1~n行列的值替換
for(int i=1;i)}}
for(int j=1;j)}}
//再替換0行和0列
if(isrow)
}if(iscol)}}
};
leetcode 73 矩陣置零
給定乙個 m x n 的矩陣,如果乙個元素為 0,則將其所在行和列的所有元素都設為 0。請使用原地演算法。示例 1 輸入 1,1,1 1,0,1 1,1,1 輸出 1,0,1 0,0,0 1,0,1 示例 2 輸入 0,1,2,0 3,4,5,2 1,3,1,5 輸出 0,0,0,0 0,4,5,0...
leetcode73 矩陣置零
給定乙個 m x n 的矩陣,如果乙個元素為 0,則將其所在行和列的所有元素都設為 0。請使用原地演算法。示例 1 輸入 1,1,1 1,0,1 1,1,1 輸出 1,0,1 0,0,0 1,0,1 空間複雜度為o mn 的解法自不用多說,直接新建乙個和matrix等大小的矩陣,然後一行一行的掃,只...
leetcode 73 矩陣置零
給定乙個 m x n 的矩陣,如果乙個元素為 0,則將其所在行和列的所有元素都設為 0。請使用原地演算法。示例 1 輸入 1,1,1 1,0,1 1,1,1 輸出 1,0,1 0,0,0 1,0,1 示例 2 輸入 0,1,2,0 3,4,5,2 1,3,1,5 輸出 0,0,0,0 0,4,5,0...