矩阵中的路径 — 回溯法C++实现
发布日期:2021-10-02 06:27:35 浏览次数:2 分类:技术文章

本文共 523 字,大约阅读时间需要 1 分钟。

题目描述

请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。

例如

在这里插入图片描述
矩阵中包含一条字符串"bcced“的路径,但是矩阵中不包含”abcb"路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入该格子。

求解思路

试探法 — 回溯法

在矩阵中进行逐个试探,从给定字符串中的字符挨个匹配,若匹配不到则退回去重新匹配

PS: 关于回溯法,有不懂的童鞋推荐一看,相信你读完后你会完全了解回溯法

C++实现

class Solution {
public: bool hasPath(char* matrix, int rows, int cols, char* str) {
bool visted[rows*cols]; int i,j; for (i=0;i
=0&&row
=0&&col
运行时间:3ms占用内存:604k

转载地址:https://blog.csdn.net/Jeaten/article/details/108037514 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:剪绳子的几种解法 — C++实现
下一篇:N皇后问题的求解 — 回溯法C++实现

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年03月28日 15时43分29秒