好的,接下来就是本萌新的第一篇博客啦。直接上深搜!深度优先搜索(Depth-First-Search),简称“深搜”(dfs),是我们蒟蒻们最基本的搜索操作之一。简单地说,深搜就是递归。下面是抄来的解释:深度优先搜索用一个数组存放产生的所有状态。(1) 把初始状态放入数组中,设为当前状态;(2) 扩 ...
分类:
其他好文 时间:
2019-10-04 00:05:40
阅读次数:
121
#include <iostream>#include <cstdio>using namespace std;void dfs(/*起始坐标*/){ if(/*找到出口*/){ //操作 return ; } for(/*循环遍历所有方向*/){ if(/*新的坐标不符合条件*/) continu ...
分类:
其他好文 时间:
2019-10-02 23:11:18
阅读次数:
133
深度优先搜索简称深搜,从起点出发,走过的点要做标记,发现有没走过的点,就随意挑一个往前走,走不了就回退,此种路径搜索策略就称为“深度优先搜索”,简称“深搜”。 如上面的图所示:加入我们要找一个从V0到V6的一条最短的路径。我们可以看到有许多的路我们可以走。 V0——V3——V5——V6; V0——V ...
分类:
其他好文 时间:
2019-08-18 19:51:01
阅读次数:
81
给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 采用基于递归的深度搜索算法。 深度搜索:首先找出所有从根节点到叶子节点的路径,再比较最小深度。 递归:需要定义递归函数。 复杂度分析: 时间复杂度:节点个数为N。每个节点访问一次,O(n). 空间复杂度:最坏 ...
分类:
其他好文 时间:
2019-08-18 13:18:29
阅读次数:
88
本章学习了有关图的概念以及基本操作。 主要学习了邻接矩阵,邻接表,深度搜索以及广度搜索。 其中,邻接矩阵构造简单,方便操作,易于判断两个顶点间是否存在边,即通过A[i][j]=0/1。但是数据量大时,会浪费大量空间,且不利于增删顶点。而领接表方便增删顶点,只需修改指针即可,而且空间利用效率更高,解决 ...
分类:
其他好文 时间:
2019-05-19 23:13:23
阅读次数:
160
上一次基本了解了下BFS,这次又找了个基本的DFS题目来试试水,DFS举个例子来说就是 一种从树的最左端开始一直搜索到最底端,然后回到原端再搜索另一个位置到最底端,也就是称为深度搜索的DFS--depth first search,话不多说,直接上题了解: Description:某石油勘探公司正在 ...
分类:
其他好文 时间:
2019-03-06 19:17:01
阅读次数:
172
题意:https://ac.nowcoder.com/acm/problem/16813 思路: 深度搜索:每一层枚举一个面值,然后通过dp进行检查,并通过已知面值得到最多n张得到的最大表示数。 其实,该搜索就是一个比较裸的,进行剪枝,枚举的面值还是存在范围的,上一次面值+1~n*sum(sum表示 ...
分类:
其他好文 时间:
2019-02-07 22:07:32
阅读次数:
216
题目描述 对于一个有向图,请实现一个算法,找出两点之间是否存在一条路径。 给定图中的两个结点的指针DirectedGraphNode* a, DirectedGraphNode* b(请不要在意数据类型,图是有向图),请返回一个bool,代表两点之间是否存在一条路径(a到b或b到a)。 代码如下: ...
分类:
其他好文 时间:
2018-11-26 00:04:45
阅读次数:
316
四、代码结构(2)I/O写流程及spacemanager
分类:
移动开发 时间:
2018-10-31 17:07:19
阅读次数:
194
在计算机应用中,我们把一系列相连接的节点组成的数据结构,叫做图。今天我们将要介绍它的一种形式——无向图,以及针对这种结构的深度优先搜索和路径查找算法。 一、无向图数据结构 接口: 实现类: 二、深度搜索优先算法 对于图的处理我们常常通过系统地检查每一个顶点和每一条边来获取图的各种性质。对于图的问题我 ...
分类:
编程语言 时间:
2018-10-13 21:41:00
阅读次数:
227