[剑指offer]矩阵中的路径
来源:互联网 发布:qq的smtp端口号 编辑:程序博客网 时间:2024/05/31 13:15
public class Solution {public boolean hasPath(char[] matrix, int rows, int cols, char[] str) {//为空情况if (matrix.length == 0 || str.length == 0) {return false;}//是否访问过 默认falseboolean[] visited = new boolean[matrix.length];int pathlength = 0;//字串下标//双重循环检测for (int row = 0; row < rows; row++) {for (int col = 0; col < cols; col++) {if (hasPathCore(matrix, rows, cols, row, col, str, pathlength, visited)) {return true;}}}return false;}public boolean hasPathCore(char[] matrix, int rows, int cols, int row, int col, char[] str, int pathlength,boolean[] visited) {int index = row * cols + col;//长字符串下标if (pathlength == str.length)return true;//越界返回true 越界说明找到 访问完了if (row < 0 || row >= rows || col < 0 || col >= cols || matrix[index] != str[pathlength]|| visited[index] == true)return false;//查找失败返回falsevisited[index] = true;//标记访问过//访问上下左右 递归回溯if (hasPathCore(matrix, rows, cols, row, col - 1, str, pathlength + 1, visited)|| hasPathCore(matrix, rows, cols, row, col + 1, str, pathlength + 1, visited)|| hasPathCore(matrix, rows, cols, row - 1, col, str, pathlength + 1, visited)|| hasPathCore(matrix, rows, cols, row + 1, col, str, pathlength + 1, visited)) {return true;}//失败退回上一个visited[index] = false;return false;}}
阅读全文
0 0
- 剑指offer--矩阵中的路径
- 《剑指offer》矩阵中的路径
- 剑指offer:矩阵中的路径
- [剑指offer]矩阵中的路径
- 剑指offer-矩阵中的路径
- 剑指offer 矩阵中的路径
- 剑指offer-矩阵中的路径
- 剑指offer-矩阵中的路径
- 剑指offer 矩阵中的路径
- [剑指offer]矩阵中的路径
- 剑指offer 矩阵中的路径
- 剑指offer --- 矩阵中的路径
- 剑指offer 66-矩阵中的路径
- 剑指offer—矩阵中的路径
- 《剑指offer》——矩阵中的路径
- 剑指offer 65 矩阵中的路径
- 剑指offer(六十五)之矩阵中的路径
- 剑指offer——矩阵中的路径
- Maven详解
- 文件 I/O字节流
- 【模板】最小公倍数LCM
- 欢迎使用CSDN-markdown编辑器
- Hadoop历史
- [剑指offer]矩阵中的路径
- Python从入门到死亡-全局变量和局部变量
- 关于Qt5.10调试时出现qtcreatorcdbext.dll cannot be found.的解决方案
- cmd命令
- 3. 面向对象基本原理
- 文件 I/O字符流
- lua之table.sort使用
- Manifest.permission中 permission是红色的错误
- Java 继承