网站首页 > 精选教程 正文
描述
输入:[[a,b,c,e],[s,f,c,s],[a,d,e,e]],"abcced"
返回值:true
示例2
输入:[[a,b,c,e],[s,f,c,s],[a,d,e,e]],"abcb"
返回值:false
备注:
0 <= matrix.length <= 200
0 <= matrix[i].length <= 200
解法思路
遍历矩阵,找到起点,然后使用递归分别从上下左右找到剩余节点,得注意一点就是,当前节点遍历以后,应该替换为特殊字符,防止二次遍历。代码如下
public boolean hasPath (char[][] matrix, String word) {
// write code here
if(matrix == null || matrix.length < 1 || word == null){
return false;
}
char[] chars = word.toCharArray();
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++) {
if(hasPathResult(matrix,i,j,chars,0)){
return true;
}
}
}
return false;
}
public boolean hasPathResult(char[][] matrix,int i,int j,char[] word,int index){
//边界的判断,如果越界直接返回false。index表示的是查找到字符串word的第几个字符,
//如果这个字符不等于matrix[i][j],说明验证这个坐标路径是走不通的,直接返回false
if(i < 0 || i >= matrix.length || j < 0 || j >= matrix[i].length || matrix[i][j] != word[index]){
return false;
}
if(index == word.length-1){
return true;
}
//为了防止当前节点二次使用
char tmp = matrix[i][j];
matrix[i][j] = '*';
boolean flag = hasPathResult(matrix,i+1,j,word,index+1)||hasPathResult(matrix,i,j+1,word,index+1)||
hasPathResult(matrix,i-1,j,word,index+1) ||hasPathResult(matrix,i,j-1,word,index+1);
matrix[i][j] = tmp;
return flag;
}
猜你喜欢
- 2024-11-08 「JAVA」属性、路径分隔符有何不同?file对象创建,文件过滤器
- 2024-11-08 路径之谜问题 Java java 路径规划
- 2024-11-08 悟空云课堂 | 第三期:路径遍历漏洞的防范与检测
- 2024-11-08 运行在不同系统上的Java程序,如何处理路径分隔符的兼容问题
- 2024-11-08 身为架构师,这篇IO流File的讲解及使用你一定得看,写的非常详细
- 2024-11-08 Java数据库数据存取演化路径 java数据库语句
- 2024-11-08 JAVA学习:跨平台时文件路径处理,读写配置文件
- 2024-11-08 Javaweb 自定义 Servlet 实现按照访问路径转发
- 2024-11-08 揭秘 Java 跨系统文件路径组装的秘方!
- 2024-11-08 Java练习:机器人于网格左上角到达网格右下角,有多少不同路径
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)