本文共 667 字,大约阅读时间需要 2 分钟。
两天前做的DFS,这里又卡壳!
思路:
从word第一个字符进行深搜,递归函数(矩阵,word,坐标x,坐标y,指针k) 指针k每次++,当指针k等于word的长度时,到了递归出口,return true。 遍历时,超出边界||矩阵字符与 word[k] 不相等,false。class Solution { public boolean exist(char[][] board, String word) { char[] ch=word.toCharArray(); for(int i=0;i=board.length||i<0||j>=board[0].length|| j<0||board[i][j]!=word[k]){ return false;} if(k==word.length-1){ return true;} char temp =board[i][j]; board[i][j]='/'; boolean res=rec(board,word,i+1,j,k+1)||rec(board,word,i-1,j,k+1) ||rec(board,word,i,j+1,k+1)||rec(board,word,i,j-1,k+1); board[i][j]=temp; return res; }}
转载地址:http://csnwi.baihongyu.com/