class Solution {
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,i,j,0))
return true;
return false;
}
Boolean dfs(char[][] board,String word,int i,int j,int index){
if(i<0||i>=board.length||j<0||j>=board[0].length||board[i][j]!=word.charAt(index))
return false;
if(index==word.length()-1)
return true;
char tmp = board[i][j];
board[i][j]='.';
Boolean res=(dfs(board, word, i+1, j, index+1)||dfs(board, word, i-1, j, index+1)||dfs(board, word, i, j+1, index+1)||dfs(board, word, i, j-1, index+1));
board[i][j]=tmp;
return res;
}
}
力扣79(单词搜索)dfs回溯算法 (3)java
最新推荐文章于 2021-07-20 11:52:48 发布