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之路的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 1624. 两个相同字符之间的最长子字符串 / 698. 划分为k个相等的子集 / 面试题 01.08. 零矩阵 / 1694. 重新格式化电话号码
LeetCode 1624. 两个相同字符之间的最长子字符串 / 698. 划分为k个相等的子集 / 面试题 01.08. 零矩阵 / 1694. 重新格式化电话号码