79. 单词搜索


来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/word-search
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
DFS,值相等,就像四周找。不符合条件就回退。
// 不允许重复使用
public boolean exist(char[][] board, String word) {
for(int i=0;i<board.length;i++) {
for(int j=0;j<board[0].length;j++) {
if(dfs(board,word,0,i,j)) {
return true;
}
}
}
return false;
}
public boolean dfs(char[][] board, String word, int index, int i,int j) {
if(index == word.length()) {
return true;
}
if(i<0 || i>=board.length || j<0 || j>= board[0].length || board[i][j] != word.charAt(index)) {
return false;
}
// 回溯时,回退原始数据
char src = board[i][j];
board[i][j] = '.';
boolean ret = dfs(board, word, index+1, i-1,j) ||
dfs(board, word, index+1, i+1,j) ||
dfs(board, word, index+1, i,j-1) ||
dfs(board, word, index+1, i,j+1);
board[i][j] = src;
return ret;
}
浙公网安备 33010602011771号