zoukankan      html  css  js  c++  java
  • 073 Set Matrix Zeroes 矩阵置零

    给定一个 m x n 的矩阵,如果一个元素为 0 ,则将这个元素所在的行和列都置零。
    你有没有使用额外的空间?
    使用 O(mn) 的空间不是一个好的解决方案。
    使用 O(m + n) 的空间有所改善,但仍不是最好的解决方案。
    你能设计一个使用恒定空间的解决方案吗?
    详见:https://leetcode.com/problems/set-matrix-zeroes/description/

    Java实现:

    class Solution {
        public void setZeroes(int[][] matrix) {
            int m=matrix.length;
            int n=matrix[0].length;
            boolean rowZero=false;
            boolean colZero=false;
            for(int j=0;j<n;++j){
                if(matrix[0][j]==0){
                    rowZero=true;
                }
            }
            for(int i=0;i<m;++i){
                if(matrix[i][0]==0){
                    colZero=true;
                }
            }
            for(int i=1;i<m;++i){
                for(int j=1;j<n;++j){
                    if(matrix[i][j]==0){
                        matrix[i][0]=0;
                        matrix[0][j]=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;
                    }
                }
            }
            if(rowZero){
                for(int j=0;j<n;++j){
                    matrix[0][j]=0;
                }
            }
            if(colZero){
                for(int i=0;i<m;++i){
                    matrix[i][0]=0;
                }
            }
        }
    }

     参考:https://www.cnblogs.com/grandyang/p/4341590.html

  • 相关阅读:
    (转载)Linux进程基础
    C语言字符串
    DNS域名解析服务
    Linux-SSH远程管理
    Linux文件系统深入了解
    Linux进程和计划任务管理
    Linux账户与权限管理
    MySQL实现读写分离
    SQL数据库常用函数
    MySQL进阶查询(二)
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8708530.html
Copyright © 2011-2022 走看看