二、递归:搜索算法和分治算法

2.1深度优先搜索

深度优先搜索,一般指通过递归达成“不撞南墙不回头”的搜索。
一般可以用来解决连通块问题、树形dp问题、或者搜索一些状压枚举解决不了的问题。
这里介绍两类深度优先搜索遍历图的代码:

vector<int>g[100010];      //已经存好的图。图的vector存储方式见stl篇
void dfs(int x,int pr){       //无根树的遍历。x指遍历到的节点,pr指上一个节点。
int i;
for(i=0;i<g[x].size();i++){
if(g[x][i]!=pr){
dfs(g[x][i],x);
//你要进行的操作。
}
}
//也可以有返回值,适用树形dp。
}
vector<int>g[100010];      

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

技术岗必备:笔面试算法 文章被收录于专栏

<p> 本专刊由牛客官方团队打造 </p> <p> 算法作为技术岗位必会的内容,在笔面试中的重要性越来越高,但有很多同学对于算法怎么学习,怎么刷题以及如何自己调试依然一无所知<span></span> </p> <p> 牛客官方团队打造了本书内容帮助大家了解校招算法套路增强通过概率,为校招保驾护航 </p>

全部评论

相关推荐

11-05 10:55
中南大学 Java
要双修的猫头鹰:这面试官怕不是个m
我来点评面试官
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务