2
public char[][] updateBoard(char[][] board, int[] click) {5
if (board[r][c] == 'M') {13
private void dfs(char[][] board, int r, int c) {16
|| c >= board[0].length18
|| board[r][c] == 'B') // Stop case20
int num = countMine(board, r, c); // count how many adjacent mines22
board[r][c] = (char) ('0' + num);26
dfs(board, r + 1, c); // recursively search all neighbors30
dfs(board, r - 1, c - 1);31
dfs(board, r + 1, c - 1);32
dfs(board, r - 1, c + 1);33
dfs(board, r + 1, c + 1);37
private int countMine(char[][] board, int r, int c) {39
for (int i = r - 1; i <= r + 1; ++i) {40
for (int j = c - 1; j <= c + 1; ++j) {41
if (i >= 0 && i < board.length && j >= 0 && j < board[0].length) {42
if (board[i][j] == 'M') count++;