我正在尝试在线解决一些面试问题。我需要帮助来了解这条线。 board[i][j]='#';有人可以向我解释一下吗?谢谢

public static boolean exist(char[][] board, String word) {
        int m = board.length;
        int n = board[0].length;

        boolean result = false;
        for(int i=0; i<m; i++){
            for(int j=0; j<n; j++){
               if(dfs(board,word,i,j,0)){
                   result = true;
               }
            }
        }

        return result;
    }

    public static boolean dfs(char[][] board, String word, int i, int j, int k){
        int m = board.length;
        int n = board[0].length;

        if(i<0 || j<0 || i>=m || j>=n){
            return false;
        }

        if(board[i][j] == word.charAt(k)){
            char temp = board[i][j];
            board[i][j]='#';
            if(k==word.length()-1){
                return true;
            }else if(dfs(board, word, i-1, j, k+1)
            ||dfs(board, word, i+1, j, k+1)
            ||dfs(board, word, i, j-1, k+1)
            ||dfs(board, word, i, j+1, k+1)){
                return true;
            }
            board[i][j]=temp;
        }

        return false;
    }

最佳答案

“木板”是二维数组。每次在迭代板上都避免重新访问已访问的节点时,它们已为访问的节点分配了一些值。 (即board [i] [j] =“#”)。
您可以在“#”位置使用任何字符(只需说出它已访问过)

关于java - 请帮助我理解这段代码中的一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34869815/

10-09 04:02