码迷,mamicode.com
首页 > 其他好文 > 详细

Set Matrix Zeros

时间:2015-07-09 00:15:59      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

Question:

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

Solution:

 1 class Solution {
 2 public:
 3     void setZeroes(vector<vector<int>>& matrix) {
 4     int m=matrix.size();
 5     int n=matrix[0].size();
 6     vector<int> a;
 7     for(int i=0;i<matrix.size();i++)
 8         for(int j=0;j<matrix[i].size();j++)
 9             a.push_back(matrix[i][j]);
10     vector<int> b(a);
11     vector<int>::iterator iter=b.begin();
12     for(int i=0;i<a.size();i++)
13     {
14         if(0==a[i])
15         {
16             for(int j=0;j<n;j++)
17             {
18                 *(iter+(i/n)*n+j)=0;
19             }
20             for(int k=0;k<m;k++)
21             {
22                 *(iter+k*n+i%n)=0;
23             }
24         }
25     }
26     vector< vector<int> >matrix_temp;
27     vector<int> p;
28     for(int i=0;i<b.size();i++)
29     {    
30         p.push_back(b[i]);        
31         if(i%n==n-1)
32         {
33             matrix_temp.push_back(p);
34             p.erase(p.begin(),p.end());
35         }        
36     }
37     matrix =matrix_temp;    
38     }
39 };

技术分享

Set Matrix Zeros

标签:

原文地址:http://www.cnblogs.com/riden/p/4631583.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!