首页 > 代码库 > 关于0-1矩阵置1的问题
关于0-1矩阵置1的问题
问题描述:一个矩阵,里面的元素只为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++) //同行置122 {23 if(arrays[rowIndex*col+n] == 0)24 arrays[rowIndex*col+n] == 1;25 }26 for(int m = 0; m < row; m++) //同列置127 {28 if(arrays[m*col+colIndex] == 0)29 arrays[m*col+colIndex] == 1;30 }31 }32 }33 }
关于0-1矩阵置1的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。