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

    思路:
    • 设置两个bool数组row[matrix[0].size()],col[matrix.size()]分别记录行和列中的0,如果matrix[i][j]为0,那么将row[j]和col[i]赋值为0。先遍历数组matrix,更新bool数组,然后遍历bool数组,更新matrix。(也可以将0标记到第一行和第一列,这样空间复杂度为(O(1)),以后更新)
    class Solution {
    public:
        void setZeroes(vector<vector<int>>& matrix) {
            vector<bool>row(matrix[0].size(),false);
            vector<bool>col(matrix.size(),false);
            for(int i = 0; i < matrix.size(); i++){
                for(int j = 0; j < matrix[0].size(); j++){
                    if(matrix[i][j] == 0){
                        row[j] = true;
                        col[i] = true;
                    }
                }
            }
            for(int i = 0; i < matrix.size(); i++){
                if(col[i] == true){
                    for(int j = 0; j < matrix[0].size(); j++){
                        matrix[i][j] = 0;
                    }
                }
            }
            for(int i = 0; i < matrix[0].size(); i++){
                if(row[i] == true){
                    for(int j = 0; j < matrix.size(); j++){
                        matrix[j][i] = 0;
                    }
                }
            }
            
        }
    };
    
  • 相关阅读:
    屏幕取色器colorspy
    js监控按键
    修改硬件信息小工具
    C#SendKeys的用法
    错误分析:程序集未标记为可序列化
    C#xml反序列化
    office2010激活工具
    截图软件
    C#画图
    .net中SQL防注入代码
  • 原文地址:https://www.cnblogs.com/UniMilky/p/6985989.html
Copyright © 2011-2022 走看看