Daily LeetCode – day0063 面试题 01.08. Zero Matrix LCCI

// 面试题 01.08. Zero Matrix LCCI
class Solution {
    public void setZeroes(int[][] matrix) {
        int m = matrix.length;
        int n = matrix[0].length;
        boolean column0Has0 = false;
        for (int i = 0; i < m; ++i) {
            if (matrix[i][0] == 0) {
                column0Has0 = true;
            }
            for (int j = 1; j < n; ++j) {
                if (matrix[i][j] == 0) {
                    matrix[i][0] = 0;
                    matrix[0][j] = 0;
                }
            }
        }
        for (int i = m - 1; i >= 0; --i) {
            for (int j = 1; j < n; ++j) {
                if (matrix[i][0] == 0 || matrix[0][j] == 0) {
                    matrix[i][j] = 0;
                }
            }
        }
        if (column0Has0) {
            for (int i = 0; i < m; ++i) {
                matrix[i][0] = 0;
            }
        }
    }
}
学习笔记:
今天虽然是一道比较简单的题目,动态清零
先统计行列是否有0,再操作,但是要做到只使用一个变量属实不容易,所以这也是一道很好的面试题目。


关于樊轶群

一个善良的理想主义者。
此条目发表在每日LeetCode分类目录。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注