题解 | #矩阵中的路径#
矩阵中的路径
https://www.nowcoder.com/practice/2a49359695a544b8939c77358d29b7e6
package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix char字符型二维数组 * @param word string字符串 * @return bool布尔型 */ func hasPath( matrix [][]byte , word string ) bool { n,m:=len(matrix),len(matrix[0]) vis:=make([][]bool,n) for i,_:=range vis{ vis[i]=make([]bool,m) } dirs:=[][]int{[]int{0,1},[]int{1,0},[]int{0,-1},[]int{-1,0}} var ans bool var dfs func(int,int,string) dfs=func(i,j int,word string){ if ans||vis[i][j]||matrix[i][j]!=word[0]{ return } vis[i][j]=true word=word[1:] if len(word)==0{ ans=true return } for _,dir:=range dirs{ x,y:=i+dir[0],j+dir[1] if x>=0&&x<n&&y>=0&&y<m{ dfs(x,y,word) } } vis[i][j]=false } for i:=0;i<n;i++{ for j:=0;j<m;j++{ if matrix[i][j]==word[0]{ dfs(i,j,word) } } } return ans }#dfs#