Given a go board, check if a piece is alive or not.
|
|
is not alive
|
|
is still alive
Assume your piece is marked as 1, enemy’s pieces are marked as -1. Empty space is marked as 0.
解法1:DFS
Java12345678910111213public bool isAlive(int[][] board, int i, int j) { // Mark visited nodes as Integer.MAX_VALUE; if (i < 0 || i >= board.length || j < 0 || j >= board[0].length || board[i][j] == -1 || board[i][j] == Integer.MAX_VALUE) { return false; } if (board[i][j] == 0) { return true; } board[i][j] = Integer.MAX_VALUE; return isAlive(board, i + 1, j) || isAlive(board, i - 1, j) || isAlive(board, i, j + 1) || isAlive(board, i, j - 1);}