void dfs(char **map, int n, int i, int j) { char *c = (char *)map + i * n + j; //当前 char *c_up = (char *)map + (i-1) * n + j ; //上 char *c_down = (char *)map + (i+1) * n + j ;//下 char *c_left = (char *)map + i * n + j - 1;//左 char *c_right = (char *)map + i * n + j + 1;//右 *c = 'B'; if(i-1 >= 0 && *c_up == 'T') dfs(map, n, i-1, j); if(i+1 < n && *c_down == 'T' ) dfs(map, n, i+1, j); if(j-1 >= 0 && *c_left == 'T') dfs(map, n, i, j-1); if(j+1 < n && *c_right == 'T') dfs(map, n, i, j+1); } int count(char **map, int n) { int count = 0; for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ char *c = (char *)map + i * n + j; //当前 if(*c == 'T'){ count++; dfs2(map, n, i, j); } } } return count; }
点赞 评论

相关推荐

牛客网
牛客企业服务