LeetCode 面试题 01.08 零矩阵[记忆化] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 面试题 01.08 零矩阵[记忆化] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。


解题思路:
首先定义两个行列数组,用来判断某一行或者某一列是否有零,遍历一遍矩阵后更新两个数组,再分别遍历两个数组,对直接进行整行和整列的操作,代码如下:

class Solution 
public:
    void setZeroes(vector<vector<int>>& matrix) 
        int m = matrix.size();
        int n = matrix[0].size();
        vector<bool> row(m, true);
        vector<bool> col(n, true);
        for(int i = 0; i < m; i ++) 
            for(int j = 0; j < n; j ++) 
                if(matrix[i][j] == 0) 
                    row[i] = false;
                    col[j] = false;
                
            
        
        for(int i = 0; i < m; i ++) 
            if(!row[i]) 
                matrix[i].assign(matrix[i].size(), 0);
            
        
        for(int i = 0; i < n; i ++) 
            if(!col[i]) 
                for(int j = 0; j < m; j ++) 
                    matrix[j][i] = 0;
                
            
        
    
;

以上是关于LeetCode 面试题 01.08 零矩阵[记忆化] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

面试题 01.08 零矩阵

程序员面试金典数组面试题 01.08 - 零矩阵

程序员面试题01

LeetCode 1624. 两个相同字符之间的最长子字符串 / 698. 划分为k个相等的子集 / 面试题 01.08. 零矩阵 / 1694. 重新格式化电话号码

LeetCode 1624. 两个相同字符之间的最长子字符串 / 698. 划分为k个相等的子集 / 面试题 01.08. 零矩阵 / 1694. 重新格式化电话号码

程序员面试金典面试题 01.08. 零矩阵