zoukankan      html  css  js  c++  java
  • Set Matrix Zeroes

    Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.

    click to show follow up.

    Follow up:

    Did you use extra space?
    A straight forward solution using O(mn) space is probably a bad idea.
    A simple improvement uses O(m + n) space, but still not the best solution.
    Could you devise a constant space solution?

    体比较常见,但是如何用最少的内存呢?
    记录出现0的位置要用0个数个空间,不是常数。
    在0排和0列记录哪排哪列需要置零。这两行需要在修改之前判断是否需要置零,只需2个额外空间。
    class Solution {
    public:
        void setZeroes(vector<vector<int> > &matrix) {
            int flag1 = 0;
            int flag0 = 0;
            
            for(int i = 0 ; i < matrix.size();i++)
            if(matrix[i][0] == 0)flag1 = 1;
            
            for(int i = 0 ; i < matrix[0].size();i++)
            if(matrix[0][i] == 0)flag0 = 1;
            
            for(int i = 1 ; i < matrix.size();i++)
            for(int j = 1 ; j < matrix[0].size();j++)
            {
                if(matrix[i][j] == 0)
                {
                    matrix[0][j] = 0;
                    matrix[i][0] = 0;
                }
            }
            
            for(int i = 1 ; i < matrix.size();i++)
            {
                if(matrix[i][0] == 0)
                for(int j = 1 ; j < matrix[i].size();j++)matrix[i][j]=0;
            }
            for(int i = 1 ; i < matrix[0].size();i++)
            {
                if(matrix[0][i] == 0)
                for(int j = 1 ; j < matrix.size();j++)matrix[j][i]=0;
            }
            if(flag1 == 1)for(int i = 0 ; i < matrix.size();i++)matrix[i][0] = 0;
            if(flag0 == 1)for(int i = 0 ; i < matrix[0].size();i++)matrix[0][i] = 0;
            
        }
    };
    

      

  • 相关阅读:
    XML文件详解以及解析
    Delphi 泛型详解
    Delphi 修改本地日期和时间
    java -> this关键字
    java ->super关键字
    Java -> 构造器(构造方法)
    java -> 方法的重载
    java面向对象->多态
    Java面向对象->接口
    Java面向对象->抽象类
  • 原文地址:https://www.cnblogs.com/pengyu2003/p/3596314.html
Copyright © 2011-2022 走看看