Set Matrix Zeroes

Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.

C++:
01 void setZeroes(vector<vector<int> > &matrix)
02  {
03       int m=matrix.size();
04       if(m==0)
05           return;
06       int n=matrix[0].size();
07       if(n==0)
08           return;
09       int* R=new int[m];
10       int* C=new int[n];
11       for(int i=0;i<m;i++)
12           R[i]=0;
13       for(int i=0;i<n;i++)
14           C[i]=0;
15       for(int i=0;i<m;i++){
16           for(int j=0;j<n;j++){
17               if(matrix[i][j]==0){
18                   R[i]=1;
19                   C[j]=1;
20               }
21           }
22       }
23       for(int i=0;i<m;i++){
24           for(int j=0;j<n;j++){
25               if(R[i]||C[j])
26                   matrix[i][j]=0;
27           }
28       }
29 }
Advertisements
This entry was posted in Array and linked list. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s