剑指Offer12 矩阵中的路径(有趣的题)
Posted 小布丁value
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指Offer12 矩阵中的路径(有趣的题)相关的知识,希望对你有一定的参考价值。
参考文献https://leetcode-cn.com/problems/ju-zhen-zhong-de-lu-jing-lcof/
public class Day1005 {
public static void main(String[] args) {
}
public boolean exist(char [][] board,String word){
char[] words=word.toCharArray();
for(int i=0;i<board.length;i++){
for(int j=0;j<board[0].length;j++){
if (dfs(board,words,i,j,0)) return true;
}
}
return false;
}
boolean dfs(char[][] board,char[] words,int i,int j,int k){
//剪掉边界和不想等字符
if(i>board.length-1||i<0||j>board[0].length-1||j<0||board[i][j]!=words[k]) return false;
//走到目标数组的末尾
if(k==words.length-1) return true;
//走过(相等的字符)的数标记出来,防止重复
board [i][j]= '\\0';
//按照下,上,右,左,深度遍历的方式走
boolean res=(dfs(board,words,i+1,j,k+1)||dfs(board,words,i-1,j,k+1)||dfs(board,words,i,j+1,k+1)||
dfs(board,words,i,j-1,k+1));
//走成功或者没成功,最后都要把人家的数返回回来
board[i][j]=words[k];
return res;
}
}
以上是关于剑指Offer12 矩阵中的路径(有趣的题)的主要内容,如果未能解决你的问题,请参考以下文章