leetcode73矩阵置零

思路

想到的就是需要一个数组来记录是不是这行或者这列是不是有零,然后最后再扫描一遍这个矩阵

题解

借助第0行第0列来记录这个行是不是有0,这个列是不是有0

另外,这个矩阵不大,所以可能有重复的置0应该也没事。

复制代码
class Solution {
    public void setZeroes(int[][] matrix) {
        boolean row_0 = false;
        boolean column_0 = false;
        int col = matrix[0].length; //这个是列
        int row = matrix.length; //这个是行
        for (int i = 0; i < col; i++) { //判断第一行有没有0值
            if (matrix[0][i] == 0){ //第0行第i列
                row_0 = true;
                break;
            }
        }
        for (int i = 0; i < row; i++) {//判断第一列有没有0值
            if (matrix[i][0] == 0){
                column_0 = true;
                break;
            }
        }
        for (int i = 1; i < col; i++) {
            for (int j = 1; j < row; j++) {
                if (matrix[j][i] == 0){
                   matrix[0][i] = 0; //列
                   matrix[j][0] = 0; //行
                }
            }
        }
        for (int i = 1; i < col; i++) { //列
            if (matrix[0][i] == 0){
                for (int j = 1; j < row; j++) {
                    matrix[j][i] = 0;
                }
            }
        }

        for (int i = 1; i < row; i++) { //行
            if (matrix[i][0] == 0){
                for (int j = 1; j < col; j++) {
                    matrix[i][j] = 0;
                }
            }
        }
        if (column_0 == true){ //处理第一列

            for (int i = 0; i < row; i++) {
                matrix[i][0] = 0;
            }
        }
        if (row_0 == true){ //处理第一行
            for (int i = 0; i < col; i++) { //不能处理0
                matrix[0][i] = 0;
            }
        }
    }
}
相关推荐
罗湖老棍子5 小时前
【例 1】Sightseeing Trip(信息学奥赛一本通- P1494)(洛谷-P10927)
数据结构·算法·图论·最短路·floyd·最小环
文丑颜不良啊5 小时前
LeetCode201~225题目解析
java·leetcode
stsdddd7 小时前
YOLO算法建筑工地安全帽目标检测数据集16881张:标注核对笔记
算法·yolo·目标检测
CV爱数码8 小时前
论文精读|Learned Primal-Dual:把原始–对偶算法展开成网络
图像处理·算法·计算机视觉·ct·重建·断层扫描
yuniko-n8 小时前
【算法】约瑟夫环问题
java·算法
l1t9 小时前
测试DuckDB v2.1.0-alpha49002的bignum乘法
数据库·sql·算法·duckdb
Nil2089 小时前
LeetCode 283移动零
数据结构·算法·leetcode
CQU_JIAKE9 小时前
10.18【A】
算法
LMT流氓兔9 小时前
第五单元——第4课:给工具参数加校验
java·前端·算法·ai·langchain
文丑颜不良啊10 小时前
LeetCode226~250题目解析
java·leetcode