![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
搜索
溺水的鱼xu
这个作者很懒,什么都没留下…
展开
-
dfs专项练习总结
对于dfs搜索,每次for循环一组数字,我们选其中一个进行搜索,按他搜索过后记得要回溯,选择其他的进行搜索。 所以说,对于一次dfs函数,我们需要选择一个。如果你都不选了,进到这一个dfs也就没有了意义。 一 ,NC121 字符串的排列 这道题用全排列可以轻松解决。 不过我不想用全排列,我想使用dfs搜索进行解决。 这个是我第一次写的dfs,下面那个dfs完全没有什么意义,因为如果你不选这个节点,你可可以选其他的,for循环会向后执行,而不是你再来一个dfs来决定不选它。 同时上面这个代码还没有进行去重的原创 2021-07-21 15:28:04 · 201 阅读 · 1 评论 -
LeetCode 39. 组合总和
LeetCode 39. 组合总和 class Solution { public: vector<vector<int> > vec; void dfs(vector<int> num,int target,vector<int> v,int ans,int index) { if(ans>target) return ; if(ans==target) {原创 2021-07-22 14:32:32 · 69 阅读 · 0 评论 -
NC99 树的直径
NC99 树的直径 这道题有个坑。 这道题不是二叉树,而且还需要你自己建图。而且不可以使用二维数组建图,因为n太大。要使用领接表。 同时我第一次想的是最长的路径必定是在一个叶子节点到另一个叶子节点,我找遍所有的取最大的,然后去最大的就行了,那么有几个子叶节点就需要几个dfs,那么这样还是会超时。 于是,就有了,先随便找一个点搜到他的最远点,然后在从最原来搜,这次搜到就是最大的了。 下面是我两次的代码,第一个是超时的。 /** * struct Interval { * int start; * in原创 2021-07-25 00:31:18 · 615 阅读 · 0 评论 -
dfs bfs练习
蓝桥杯迷宫 题目描述 下图给出了一个迷宫的平面图,其中标记为1 的为障碍,标记为0 的为可 以通行的地方。 010000 000100 001001 110000 迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这 个它的上、下、左、右四个方向之一。 对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通过迷宫, 一共10 步。其中D、U、L、R 分别表示向下、向上、向左、向右走。 对于下面这个更复杂的迷宫(30 行50 列),请找出一种通过迷宫的方式, 其使用的步数最少,在步数最少原创 2020-09-06 13:25:50 · 71 阅读 · 0 评论 -
L3 天梯地图
L3 天梯地图 天梯地图题目 当我看到这道题的第一思路是,这道题肯定是用搜索,至于是深搜还是广搜,我选择了深搜。其实对于搜索这类题目,我是比较害怕的,因为最近写搜索的题目写的有点少了,但是,迎难而上的道理我还是懂的,于是我就开始动手敲代码,~~~~~~~~~一段时间以后,我终于写完了这道题的深搜代码,于是我满怀信心的提交了上去,但是,出问题了,一部分样例超时,没关系,肯定是深搜时间复杂度太高了,我...原创 2020-02-06 15:03:27 · 178 阅读 · 0 评论