搜索(深搜回溯与广搜) 1.深搜与回溯 深度优先搜索,简称为深搜或 "DFS" (Depth First Search), 是图运算的一种搜索方式,简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次.大致的搜索过程如下 深度优先遍历图的方法是, 从图中某顶点v出发: (1 ...
分类:
其他好文 时间:
2021-04-30 12:09:37
阅读次数:
0
题目链接 127. 单词接龙 题目描述 解题思路 题目中有个关键词:最短转换序列的长度,我们知道常见的搜索算法有两种:DFS和BFS,那么本题适用哪种算法呢?两种都适用吗? 记住题目中如果出现最短关键字一定要采用BFS搜索算法去解决,而不是采用和我一样采用DFS(一开始死磕DFS,搞了一下午还是没有 ...
分类:
其他好文 时间:
2020-11-13 13:14:15
阅读次数:
19
1. 搜索算法 在树(图/状态集)中寻找特定节点 深度优先搜索算法和广度优先搜索算法都是基于“图”这种数据结构。 图上的搜索算法就是,在图中找出从一个顶点出发,到另一个顶点的路径。图上的搜索算法有深度优先、广度优先搜索算法,和A*A?、IDA*IDA? 等启发式搜索算法。 广度优先搜索和深度优先搜索 ...
分类:
编程语言 时间:
2020-07-19 23:30:25
阅读次数:
103
题目链接:https://www.acwing.com/problem/content/176/ 由于状态数量的限制,我们可以考虑捆绑人与箱子的状态,我们已知每次箱子的移动一定是由人引起的,可以考虑状态是箱子的位置和箱子推动的时候人的方向,用另一个BFS搜索人从当前位置 到达箱子旁边的该方向的位置但 ...
分类:
编程语言 时间:
2020-06-20 15:40:38
阅读次数:
70
前言 重中之重的一个知识!也是算法设计中非常非常基础的一部分,OI 这么多年一直陪伴在身边,是大部分不能得到正解只求部分分时的最佳选择,通常我们称之为“暴力搜索”,它写起来不伤脑筋,能够处理数据量小的情况,而且有时灵机一动再优化一下,甚至能得到更可观的分数,所以其实就算对算法、理论或者数据结构不太熟 ...
分类:
其他好文 时间:
2020-05-14 00:53:21
阅读次数:
79
【题意】走迷宫问题,找最短路径的每一条路,bfs里面很经典的题 【思路】通过bfs搜索方法,对每一条最短路径都进行存取在数组中; 不过在存取过程中有一个技巧:用数组来存取每个迷宫上的二维点;采用递归的方式把所有点输出来; 【注意】不要搞混淆了,可以自己画图实验几个 以下就是我的代码: #includ ...
分类:
其他好文 时间:
2020-01-23 09:42:45
阅读次数:
102
【题意】仅有两种颜色,红,黑两种瓷砖,我现在只能在相邻黑瓷砖上运动,并且我现在站在黑色瓷砖上,问能够到达好多快瓷砖。输入 0 0 是退出。 【思路】此题是bfs搜索,因为,提到了只能向相邻的黑色瓷砖运动,所以只需要记录我自己可以在队列中push多少次即可,最终答案加1哦,因为要算本身的 【代码】: ...
分类:
其他好文 时间:
2020-01-22 23:47:16
阅读次数:
52
问题描述 完成一个目录复制命令mycp,包括目录下的文件和子目录, 运行结果如下: 思路 这道题目主要涉及文件读写操作和属性修改。需要支持文件夹复制、文件复制,在Linux下还要支持软链接的复制。 思路如下: 获取待复制目录的绝对路径 根据绝对路径进行dfs或者bfs搜索所有子目录项 判断子目录是属 ...
分类:
编程语言 时间:
2019-12-14 22:47:03
阅读次数:
117
解决最短路径问题的算法被称为广度优先(breadth-first search,BFS)搜索。 最短路径问题的解决步骤: 1.使用图建立问题模型; 2.使用广度优先搜索解决问题。 ...
分类:
其他好文 时间:
2019-08-19 00:08:06
阅读次数:
116
给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],] 思路: 回溯 BFS搜索 关键在于循环边界的控制. eg: n = 4 , k = 2 ... ...
分类:
其他好文 时间:
2019-02-05 23:56:41
阅读次数:
226