嗯... BFS是图的搜索算法之一,与深度优先搜索不同的是:广度优先搜索会先搜索到与起始点距离较近的点,而深搜却是沿着一个分支递归到最后.... 与深搜的对比: 深搜用栈(stack)来实现: 1.把起始顶点压入栈中 2.每次从栈顶取出一个顶点,搜索所有它的未访问相邻顶点,把这些顶点压入栈中 3.重 ...
分类:
其他好文 时间:
2019-01-31 23:00:24
阅读次数:
210
这种搜索仅限于解决起始状态和结束状态可以互换的问题之中,也就是从头搜到尾和从尾搜到头是等价的 移动一个只含字母A和B的字符串中的字母,给定初始状态为(a)表,目标状态为(b)表,给定移动规则为:只能互相对换相邻字母。请找出一条移动最少步数的办法 NKOJ1688移字母游戏 一通好找啊 ...
分类:
其他好文 时间:
2018-09-11 14:52:03
阅读次数:
189
对于一颗二叉树,深度优先搜索(Depth First Search)是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。以上面二叉树为例,深度优先搜索的顺序为:ABDECFG。怎么实现这个顺序呢 ?深度优先搜索二叉树是先访问根结点,然后遍历左子树接着是遍历右子树,因此我们可以利用堆栈的先进后出的特点 ...
分类:
其他好文 时间:
2018-08-30 12:26:05
阅读次数:
188
LeetCode:N叉树的最大深度【559】 题目描述 给定一个N叉树,找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 例如,给定一个 3叉树 : 我们应返回其最大深度,3。 说明: 题目分析 我们可以使用BFS(宽度优先搜索)来求解该问题,思路是这样的,我们一层一层的 ...
分类:
其他好文 时间:
2018-08-10 21:20:12
阅读次数:
339
之前使用的是递归的方法来解决的问题,后来有点想用bfs(宽度优先搜索来尝试一下的想法,在网上看到有人使用了dfs(深度优先搜索)更加坚定了自己的这种想法。 这个方法首先是以顶点的四组开始,加入那些没有放置卡片的位置,同时使用另外一个数组来标记距离,就这样一直拓展下去,如果碰到了目标位置,那么我们就对 ...
分类:
其他好文 时间:
2018-06-14 14:48:10
阅读次数:
168
接着(一)start (二)广度优先搜索(BFS) 广度优先搜索(又称宽度优先搜索算法)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。 Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。其别名又叫BFS,属于一种盲目搜寻法,目的是系统地展开 ...
分类:
其他好文 时间:
2018-04-14 23:04:12
阅读次数:
194
算法知识目录整理 1. 算法部分 二分搜索 Binary Search 分治 Divide Conquer 宽度优先搜索 Breadth First Search 深度优先搜索 Depth First Search 回溯法 Backtracking 双指针 Two Pointers 动态规划 Dyn ...
分类:
编程语言 时间:
2018-03-02 23:54:12
阅读次数:
206
Knight Moves poj-1915 题目大意:在国际象棋中有一个骑士,想从一个点到达另一个点。骑士可以从2*3的矩阵的一角跳到对角线的另一角。问:骑士最少需要跳多少次才能从一个点跳到另一个点。 注释:棋盘大小l为1<=l<=300. 想法:显然,这是一道非常经典的宽度优先搜索的题目(bfs) ...
分类:
其他好文 时间:
2018-02-26 11:17:48
阅读次数:
201
搜索是什么? 1.问题全状态空间 2.搜索空间 3.解路径 分类 一,盲目搜索(只是搜索的顺序不同) 1.深度优先搜索 2.宽度优先搜索 二,启发式搜索 A*算法 分类来讲 1.深度优先搜索 例题:皇后问题 存在的问题:1.深度问题,2.死循环问题 解决办法:1.对搜索深度加以限制 2.记录从初始状 ...
分类:
其他好文 时间:
2018-02-07 21:17:16
阅读次数:
164
1. 字符串的一些特点 1.1 广泛性 (1)字符串可以看作是字符类型的数组 >所以可能会涉及排序+查找; (2)很多问题都可以转化为字符串类型的方法去解决; 需要注意的是:用java语言实现字符串类型的题目的时候,需要掌握StringBuffer、StringBuilder类和toCharArra ...
分类:
编程语言 时间:
2018-01-27 11:35:05
阅读次数:
137