百度编程题:BigHouse,小区最大连通数目
看了一下题目,没时间AC了,只写了部分代码,刚继续完成了。
用了一个全局变量,自己用了几个测试通过了,但不知道能不能AC,求大神解答
2个for循环,一次遍历矩阵每一个值,然后取最大连通数即可
int count = 0; //返回值+1,因为还要加上自己 int find(int **grid, int ** flag,int n, int m, int row, int col) { if (flag[row][col] == 0) { return 0; } flag[row][col] = 0; if ((row + 1) < n && flag[row + 1][col] && grid[row + 1][col]) { ::count=1 + find(grid, flag, n, m, row + 1, col); } if ((col + 1) < m && flag[row][col + 1] && grid[row][col + 1]) { ::count = 1 + find(grid, flag, n, m, row, col + 1); } if ((row - 1) >= 0 && flag[row - 1][col] && grid[row - 1][col]) { ::count = 1 + find(grid, flag, n, m, row - 1, col); } if ((col - 1) >= 0 && flag[row][col - 1] && grid[row][col - 1]) { ::count = 1 + find(grid, flag, n, m, row, col - 1); } return ::count; }