zoukankan      html  css  js  c++  java
  • 73. 矩阵置零

    class Solution {
        public void setZeroes(int[][] matrix) {
            int m = matrix.length;
            if(m == 0) return;
            int n = matrix[0].length;
            boolean row0 = false, col0 = false; // 判断第一行有没有0 // 判断第一列有没有0;
            for(int i = 0; i < m; i++) {
                if(matrix[i][0] == 0) {
                    col0 = true;
                    break;
                }
            }
            // 判断第一列有没有0;
            for(int j = 0; j < n; j++) {
                if(matrix[0][j] == 0) {
                    row0 = true;
                    break;
                }
            }
            //在除去第一列与第一行的其他位置上如果有0,将这个位置对应的第一行第一列的那个元素置0
            for(int i = 1; i < m; i++) {
                for(int j = 1; j < n; j++) {
                    if(matrix[i][j] == 0) {
                        matrix[0][j] = matrix[i][0] = 0;
                    }
                }
            }
            // 以第一行第一列的0为参照将对应的行列全部置0:
            for(int i = 1; i < m; i++) {
                for(int j = 1; j < n; j++) {
                    if(matrix[i][0] == 0 || matrix[0][j] == 0) matrix[i][j] = 0;
                }
            }
            // 如果第一行第一列本来就有0, 将第一行或第一列全部置0
            if(col0) {
                for(int i = 0; i < m; i++) matrix[i][0] = 0;
            }
            if(row0) {
                for(int i = 0; i < n; i++) matrix[0][i] = 0;
            }
        }
    }
  • 相关阅读:
    Github markdown页面内跳转
    github gist 无法访问
    Install pyaudio on Ubuntu
    删除链表的倒数第N个节点
    电话号码的字母组合
    最长公共前缀
    盛最多水的容器
    字符串转化整数与回文数
    Z 字形变换
    LeetCode1-5题
  • 原文地址:https://www.cnblogs.com/yonezu/p/13269299.html
Copyright © 2011-2022 走看看