经典DFS题解 | #矩阵中的路径#

矩阵中的路径

http://www.nowcoder.com/questionTerminal/2a49359695a544b8939c77358d29b7e6

public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param matrix char字符型二维数组
* @param word string字符串
* @return bool布尔型
*/
public boolean hasPath (char[][] matrix, String word) {
// write code here
char[]words = word.toCharArray();
for(int i = 0; i<matrix.length; i++){
for(int j = 0; j<matrix[0].length; j++){
if(dfs(matrix,words,i,j,0)) return true;
}
}
return false;
}
public boolean dfs(char[][]matrix, char[]words, int i, int j, int k){
if(i>=matrix.length||i<0||j<0||j>=matrix[0].length||matrix[i][j]!=words[k]){
return false;
}
//原地修改不需要额外空间
matrix[i][j] = '\0';
if(k == words.length-1){
return true;
}
boolean res = dfs(matrix,words,i,j+1,k+1)||dfs(matrix,words,i+1,j,k+1)||dfs(matrix,words,i,j-1,k+1)|| dfs(matrix,words,i-1,j,k+1);
//改回来
matrix[i][j] = words[k];
return res;
}
}

全部评论

相关推荐

07-18 15:02
门头沟学院 Java
刚打开网申页面就不想填了,还是不要为难自己了
poppinzhan...:多益老行业毒瘤了,碰到徐波这种恶心的烂人,去了也是受罪。
点赞 评论 收藏
分享
Vincent777...:实习经历可以考虑放上去,对于软件使用方面可以细化一些,比如调整为:熟悉基于LSDYNA的瞬态动力学仿真分析,熟悉基于WORKBENCH的结构拓扑优化
我的简历长这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务