题目:给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(大写字母 O)。找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。 边界上的O 一定不会被包围 而且它通过上下左右移动能到达的O也不会
例如:
X X X X 运行你的函数后,矩阵变为: X X X X
X X X X X X O X
X O X X X O X X
X O X X X O X X
感染:
可以采用DFS, 从四个边界入, 查找四个边界上是O的,从它入手DFS搜索,搜索到的所有O暂时置为y
那么四个边界DFS完成之后,不能被包围的O都变成了y, 其他的O还是O,
那么再遍历矩阵,O变成X, y还原为O
public void solve(char[][] board) {
if (board.length <= 2 || board[0].length <= 2) return;
int rows = board.length, cols = board[0].length;
for