题目:
给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。
例如:
输入:
[
[1,1,1],
[1,0,1],
[1,1,1]
]
输出
[
[1,0,1],
[0,0,0],
[1,0,1]
]
思路:题目要求in_place,这样的话就不能再另开辟空间作为标记;我们只能在原有的数组上进行标记。
1.检查第一行和第一列是否有0;
2.检查除了第一行第一列的其他元素是否为0;如果为0的话,将其对应于第一行、第一列的元素置为0;
3.执行第一行第一列之外的元素为0;
4.将为0的第一列第一行全部设为0;
代码如下:
class Solution{
public void setZeroes(int[][] matrix) {
boolean isZeroRow=false;
boolean isZeroCol=false;
//检查第一行
for(int i=0;i<matrix[0].length;i++){
if(matrix[0