public class Solution {
public boolean hasPath(char[] matrix, int rows, int cols, char[] str)
{
int[]flag=new int[matrix.length];
for(int i=0;i<rows;i++)
{
for(int j=0;j<cols;j++)
{
if(helper(matrix,rows,cols,i,j,str,0,flag))
return true;
}
}
return false;
}
public boolean helper(char[]matrix,int rows,int cols,int i,int j,
char []str,int k,int[]flag){
int index=i*cols+j;
if(i<0||i>=rows||j<0||j>=cols||matrix[index]!=str[k]||flag[index]==1)
return false;
if(k==str.length-1)
return true;
flag[index]=1;
if(helper(matrix,rows,cols,i-1,j,str,k+1,flag)
||helper(matrix,rows,cols,i+1,j,str,k+1,flag)
||helper(matrix,rows,cols,i,j-1,str,k+1,flag)
||helper(matrix,rows,cols,i,j+1,str,k+1,flag))
return true;
flag[index]=0;
return false;
}
public static void main(String[]args){
System.out.println("Hello");
}
}
矩阵中的路径
最新推荐文章于 2021-07-31 17:01:53 发布
本文介绍了一个用于判断在给定的字符矩阵中是否存在指定字符串路径的算法。通过递归深度优先搜索的方法,在矩阵中查找与输入字符串匹配的所有可能路径。文章详细展示了如何实现这一功能,并附带了完整的Java代码示例。
摘要由CSDN通过智能技术生成