闻缺陷则喜何志丹7 小时前
c++·算法·深度优先·力扣·图论··网格
【C++图论 DFS】1559. 二维网格图中探测环|1837C++图论 C++DFS给你一个二维字符网格数组 grid ,大小为 m x n ,你需要检查 grid 中是否存在 相同值 形成的环。 一个环是一条开始和结束于同一个格子的长度 大于等于 4 的路径。对于一个给定的格子,你可以移动到它上、下、左、右四个方向相邻的格子之一,可以移动的前提是这两个格子有 相同的值 。 同时,你也不能回到上一次移动时所在的格子。比方说,环 (1, 1) -> (1, 2) -> (1, 1) 是不合法的,因为从 (1, 2) 移动到 (1, 1) 回到了上一次移动时的格子。
shanql2 个月前
·找环
boost笔记:boost::Graph中找出所有环本文描述了找出一个有向连通图中所有的环的解决方案测试用到的有向连通图通过深度优先遍历算法,发现回边时,即存在环的原理来找出环。对于用共享边的环,以下算法有些环找不出来,如上图中的2->8->9->6->2。为什么找不出来,自己走一边深度优先遍历的过程再结合算法原理即可得知。使用的函数为boost::depth_first_search, 具体参看后文算法实现
闻缺陷则喜何志丹1 年前
数据结构·c++·算法·图论·bfs·广度有序搜索·
C++算法:图中的最短环现有一个含 n 个顶点的 双向 图,每个顶点按从 0 到 n - 1 标记。图中的边由二维整数数组 edges 表示,其中 edges[i] = [ui, vi] 表示顶点 ui 和 vi 之间存在一条边。每对顶点最多通过一条边连接,并且不存在与自身相连的顶点。 返回图中 最短 环的长度。如果不存在环,则返回 -1 。 环 是指以同一节点开始和结束,并且路径中的每条边仅使用一次。 2 <= n <= 1000 1 <= edges.length <= 1000 edges[i].length == 2 0