其他分享
首页 > 其他分享> > leetcode 73: 矩阵置零

leetcode 73: 矩阵置零

作者:互联网

leetcode 73: 矩阵置零

给定一个 *m* x *n* 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法

示例 1:

输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
输出:[[1,0,1],[0,0,0],[1,0,1]]

示例 2:

输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]

提示:

进阶:

Related Topics

数组

哈希表

矩阵

思路1:

思路2:

使用2个标记数组,标记需要修改的行和列。

public void setZeroes(int[][] matrix) {
    int row = matrix.length;//行
    int column = matrix[0].length;//列
​
    boolean[] rowFlag = new boolean[row];
    boolean[] colFlag = new boolean[column];
    for(int i = 0 ; i <row;i++){
        for(int j = 0 ; j <column;j++){
            if(matrix[i][j] == 0){
                rowFlag[i] = true;
                colFlag[j] = true;
            }
        }
    }
    for(int i = 0 ; i <row;i++){
        for(int j = 0 ; j <column;j++){
            if(rowFlag[i] || colFlag[j]){
                matrix[i][j] = 0;
            }
        }
    }
}
    解答成功:
            执行耗时:0 ms,击败了100.00% 的Java用户
            内存消耗:42.9 MB,击败了5.54% 的Java用户

思路3:

空间复杂度为O(1)。参考leetcode官方

总结

思路2 性能最好,思路3空间复杂度最低。

标签:matrix,int,矩阵,column,++,length,73,leetcode,row
来源: https://blog.csdn.net/yingmu__/article/details/122809607