我正在尝试在线解决一些面试问题。我需要帮助来了解这条线。 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/