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

关于0-1矩阵置1的问题

时间:2014-11-23 18:48:23      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   color   sp   for   div   问题   log   

问题描述:一个矩阵,里面的元素只为1或者0,要求把元素为1的元素的同行和同列的所有元素都置为1,要求:算法空间复杂度为O(1).

 1 void _setRowAndCol(int arrays[], int row, int col)
 2 {
 3     assert(arrays != NULL && row > 0 && col > 0);
 4     
 5     int rowIndex = 0,colIndex = 0;
 6 
 7     for(int i = 0; i < row*col; i++)        //将原始1置为2
 8     {
 9         if(arrays[i] == 1)
10             ++arrays[i];
11     }
12 
13     for(int j = 0; j < row*col; j++)
14     {
15         if(arrays[j] > 1)
16         {
17             arrays[j] = 1;
18             rowIndex = j/col;            //记录下此处原始1的行和列的下标
19             colIndex = j-rowIndex*col;
20 
21             for(int n = 0; n < col; n++)    //同行置1
22             {
23                 if(arrays[rowIndex*col+n] == 0)
24                     arrays[rowIndex*col+n] == 1;
25             }
26             for(int m = 0; m < row; m++)    //同列置1
27             {
28                 if(arrays[m*col+colIndex] == 0)
29                     arrays[m*col+colIndex] == 1;
30             }
31         }
32     }
33 }

 

关于0-1矩阵置1的问题

标签:style   blog   ar   color   sp   for   div   问题   log   

原文地址:http://www.cnblogs.com/geekpaul/p/4117101.html

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