【剑指offer-12】矩阵中的路径
题目描述
class Solution {
public:
bool f = ;
void dfs(char* matrix, int rows, int cols, char* str, bool* vis, int n, int an)
{
if(n == strlen(str))
{
f = ;
return;
}
if((an->=)&&(an-<cols*rows)&&vis[an-]==&&str[n]==matrix[an-])
{
vis[an-] = ;
dfs(matrix, rows, cols, str, vis, n+, an-);
if(f == ) return;
vis[an-] = ;
}
if((an+>=)&&(an+<cols*rows)&&vis[an+]==&&str[n]==matrix[an+])
{
vis[an+] = ;
dfs(matrix, rows, cols, str, vis, n+, an+);
if(f == ) return;
vis[an+] = ;
}
if((an-cols>=)&&(an-cols<cols*rows)&&vis[an-cols]==&&str[n]==matrix[an-cols])
{
vis[an-cols] = ;
dfs(matrix, rows, cols, str, vis, n+, an-cols);
if(f == ) return;
vis[an-cols] = ;
}
if((an+cols>=)&&(an+cols<cols*rows)&&vis[an+cols]==&&str[n]==matrix[an+cols])
{
vis[an+cols] = ;
dfs(matrix, rows, cols, str, vis, n+, an+cols);
if(f == ) return;
vis[an+cols] = ;
}
return;
}
bool hasPath(char* matrix, int rows, int cols, char* str)
{
bool vis[rows*cols+];
for(int i=; i<rows; i++)
for(int j=; j<cols; j++)
{
int an = i*cols+j;
if(matrix[an] == str[])
{
memset(vis, , sizeof(vis));
vis[an] = ;
dfs(matrix, rows, cols, str, vis, , an);
if(f == ) return ;
}
}
return ;
}
};
【剑指offer-12】矩阵中的路径的更多相关文章
- 剑指 Offer 12. 矩阵中的路径 + 递归 + 深搜 + 字符串问题
剑指 Offer 12. 矩阵中的路径 题目链接 题目类似于迷宫的搜索. 需要注意的是,需要首先判断起始搜索的位置,可能有多个起点,都需要一一尝试. 每轮迭代的时候记得将是否遍历标记数组还原为未遍历的 ...
- 力扣 - 剑指 Offer 12. 矩阵中的路径
题目 剑指 Offer 12. 矩阵中的路径 思路1(回溯.DFS) 这题可以使用回溯+递归来解决,思路如下: 将二维数组的每一个元素都作为起点进行回溯查找 每次查找的时候,都有四个方向,但是上一个方 ...
- 剑指 Offer 12. 矩阵中的路径
题目描述 是一道很常见的深搜题目,不过里面要考虑一些边界问题,比如走过的路径是不能再次走入的,所以我这里我自己的 代码想到是利用一个新的二维的数组,记录走过的路径,不过题解的直接将原二维数组中的路径隐 ...
- 【Java】 剑指offer(11) 矩阵中的路径
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字 ...
- Go语言实现:【剑指offer】矩阵中的路径
该题目来源于牛客网<剑指offer>专题. 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向 ...
- 剑指Offer 65. 矩阵中的路径 (回溯)
题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子.如果一条路径经过了矩阵中 ...
- [剑指Offer] 65.矩阵中的路径
题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子.如果一条路径经过了矩阵中 ...
- 剑指offer:矩阵中的路径(递归回溯法DFS类似迷宫)
1. 题目描述 /* 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径. 路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子. 如果一条 ...
- 剑指offer——13矩阵中的路径
题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子.如果一条路径经过了矩阵中 ...
- [剑指Offer]12-矩阵中的路径(回溯)
题目链接 https://www.nowcoder.com/practice/c61c6999eecb4b8f88a98f66b273a3cc?tpId=13&tqId=11218&t ...
随机推荐
- IDEA Java开发常用插件
这里只是推荐一下好用的插件,具体的使用方法就不一一详细介绍了. JRebel for IntelliJ 一款热部署插件,只要不是修改了项目的配置文件,用它都可以实现热部署.收费的,破解比较麻烦.不过功 ...
- 事务(Transaction)
1.演示转账的功能:(1)创建一张表示学生表表 CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50), ac ...
- ACMG遗传变异分类标准与指南
2015年,美国权威机构——美国医学遗传学与基因组学学会(ACMG)编写和发布了<ACMG遗传变异分类标准与指南>.为帮助我国医疗工作者和遗传咨询从业者更好地理解ACMG遗传变异分类标准. ...
- pandas demo 示例
#构造 import pandas as pd import pickle import numpy as np dates=pd.date_range() df = pd.DataFrame(np. ...
- python 千位分隔符,
>>>) >>>'1,234,567,890'
- TeamViewer 说明截图
- 软件测试实习生 带人计划 Plan for Training Inten
临时拟了个提纲,以后慢慢补充吧 序号 培训内容 时间安排 1 根据项目需求,编写测试用例,针对存储过程 2 存储过程的走读,以及怎样执行测试用例和查看结果 3 根据项目需求,编写测试用例,针对接口[C ...
- 【转】QT获取系统时间,以及设置日期格式
http://blog.csdn.net/zzk197/article/details/7498593 例如我要在一个label上设置当前时间 QDateTime time = QDateTime:: ...
- springboot整合redis缓存
使用springBoot添加redis缓存需要在POM文件里引入 org.springframework.bootspring-boot-starter-cacheorg.springframewor ...
- Java 密码扩展无限制权限策略文件[转]
因为某些国家的进口管制限制,Java发布的运行环境包中的加解密有一定的限制.比如默认不允许256位密钥的AES加解密,解决方法就是修改策略文件. 官方网站提供了JCE无限制权限策略文件的下载: JDK ...