73. 矩阵置零

Posted yuhong1103

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了73. 矩阵置零相关的知识,希望对你有一定的参考价值。

 1 class Solution 
 2 {
 3     int dx[4] = {1,0,-1,0};
 4     int dy[4] = {0,1,0,-1};
 5 public:
 6     void setZeroes(vector<vector<int>>& matrix) 
 7     {
 8         int m = matrix.size(),n = matrix[0].size();
 9         vector<vector<bool>> flag(m,vector<bool>(n,false));
10 
11         for(int i = 0;i < m;i ++)//首先标记哪些元素为0
12         {
13             for(int j = 0;j < n;j ++)
14             {
15                 if(matrix[i][j] == 0) flag[i][j] = true;
16             }
17         }
18 
19         for(int i = 0;i < m;i ++)
20         {
21             for(int j = 0;j < n;j ++)
22             {
23                 if(flag[i][j]) //标记的元素如果为True,就可以进行修改
24                 {
25                     for(int k = 0;k < 4;k ++)
26                     {
27                         int x = dx[k] + i,y = dy[k] + j;
28                         while(x >= 0 && x < m && y >= 0 && y < n)//一直朝着某个方向修改
29                         {
30                             matrix[x][y] = 0;
31                             x += dx[k];
32                             y += dy[k];
33                         }
34                     }
35                 }
36             }
37         }
38     }
39 };

 

以上是关于73. 矩阵置零的主要内容,如果未能解决你的问题,请参考以下文章

73. 矩阵置零

73#矩阵置零

Leetcode刷题Python73. 矩阵置零

leetcode-73 矩阵置零

Python描述 LeetCode 73. 矩阵置零

Python描述 LeetCode 73. 矩阵置零