130 .被包围的区域
今天,奥古斯特31,2021
9:01 AM
类解决方案{2}
公共语音解算器(字符板)
//想法:从外面走。 如果o把他*
//路径,上下左右检索。 其他也可以。
//dfs
//重新遍历。 输出结果。 将o变为x,将*变为o
if (板==空值| |板.长度==0)返回;
intm=板长度;
intn=板[0] .长度;
for (英制=0; im; I ) {2}
for(intj=0; jn; j ) {2}
//从边缘o进行检索
if () I==0||j==0||I==m-1||j==n-1 )板[ I ] (=' o ' ) {
//board[i][j]='* '
//DFS (主板); //这样写。 因为交给的是一个char,所以不行。 必须增加两个参加参数,I和j
DFS (板,I,j );
}
}
}
for (英制=0; im; I ) {2}
for(intj=0; jn; j ) {2}
if (板[ I ] [ j ]==' o ' ) )
board[i][j]='X ';
}
if (板[ I ] [ j ]==' * ' () () ) ) ) ) ) ) ) ) ) ) )
board[i][j]='O ';
}
}
}
}
//privatevoiddfs (字符板) {
私有视点DFS (char [ ]板、英寸、英寸) {
//必须写入递归结束条件
if|i0|| j0|I=板长度||j=板长度|板=' x '||板='
//board[i][j]=='* '进行了搜索。
返回;
}
//(I=0||j=0||I=m-1||j=n-1 )边界位置
board[i][j]='* ';
//深入搜索并定义路径
//DFS (主板-1); 这样写是不行的
//DFS (主板i1 );
//DFS (主板) j-1;
//DFS (主板);
DFS (板,i-1,j );
DFS (板,i 1,j );
DFS (板,I,j-1 );
DFS (板,I,j 1);
}
}