73. Set Matrix Zeroes
Posted zhuangbijingdeboke
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了73. Set Matrix Zeroes相关的知识,希望对你有一定的参考价值。
1 class Solution 2 { 3 public: 4 void setZeroes(vector<vector<int>>& matrix) 5 { 6 int szrow=matrix.size(); 7 if(szrow==0) return; 8 int szcol=matrix[0].size(); 9 int flagrow=0,flagcol=0; 10 for(int i=0;i<szcol;i++) 11 { 12 if(matrix[0][i]==0) 13 { 14 flagrow=1; 15 break; 16 } 17 } 18 for(int i=0;i<szrow;i++) 19 { 20 if(matrix[i][0]==0) 21 { 22 flagcol=1; 23 break; 24 } 25 } 26 for(int i=1;i<szrow;i++) 27 { 28 for(int j=1;j<szcol;j++) 29 { 30 if(matrix[i][j]==0) 31 { 32 matrix[0][j]=0; 33 matrix[i][0]=0; 34 } 35 } 36 } 37 for(int i=1;i<szrow;i++) 38 { 39 for(int j=1;j<szcol;j++) 40 { 41 if(matrix[0][j]==0||matrix[i][0]==0) 42 matrix[i][j]=0; 43 } 44 } 45 if(flagrow==1) 46 { 47 for(int i=0;i<szcol;i++) 48 matrix[0][i]=0; 49 } 50 if(flagcol==1) 51 { 52 for(int i=0;i<szrow;i++) 53 matrix[i][0]=0; 54 } 55 } 56 };
以第一行第一列为基准,存放要置为0的行列,然后单独处理第一行第一列即可。
以上是关于73. Set Matrix Zeroes的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode OJ 73. Set Matrix Zeroes