return 结束函数(方法)即return 后面的函数不被执行
void dfs(int x, int y){
//point2 if(x == 0 || y == 0 || x == 6 || y == 6){
res++;
return ;
}
for(int i = 1 ; i <= 4 ; i++){ //上下左右四个方向
x += X[i]; y += Y[i]; //走一步
if(!vis[x][y]){ // 若该点未访问则继续深搜
vis[x][y] = true; // 当前的点标注为已访问
vis[6 - x][6 - y] = true;
//point1 dfs(x, y); // 继续深搜
vis[6 - x][6 - y] = false;
vis[x][y] = false;
}
x -= X[i]; y -= Y[i];
}
}
当代码跑到point1时,执行dfs函数
代码point2处时, 如果执行return,则整个dfs函数执行结束,继续vis[6-x][6-y]。

这篇博客探讨了在深度优先搜索(DFS)中,return语句如何影响函数的执行流程。具体讨论了当遇到特定边界条件(point2)时,如何提前结束函数并继续后续的代码执行(vis[6-x][6-y])。同时,文章通过示例代码解释了在递归调用(point1)时,如何处理路径回溯和状态恢复的过程。
5063

被折叠的 条评论
为什么被折叠?



