迷宫问题,打印所有路径,深度搜索,dfs
#include<iostream>
using namespace std;
int maze [5][5] = {
0, 1, 0, 0, 0,
0, 1, 0, 1, 0,
0, 0, 0, 0, 0,
0, 1, 1, 1, 0,
0, 0, 0, 0, 0,
};
typedef struct
{int x;int y;}Point;
int dir[4][2]={{0,-1},{0,1},{1,0},{-1,0}};
Point path[40];int len=-1;
void dfs(int x,int y)
{ int k,nx,ny;
maze[x][y]=1;
path[++len].x=x;path[len].y=y;
if(x==4 && y==4){//结束条件
cout<<"one case:"<<endl;
for(k=0;k<=len;k++)
cout<<path[k].x<<'\t'<<path[k].y<<endl;
}
else
for(k=0;k<4;k++)
{
nx=x+dir[k][0];ny=y+dir[k][1];//下一位置(nx,ny)
if(nx>=0 &&nx<5 &&ny>=0 && ny<5 && maze[nx][ny]==0){
dfs(nx,ny);
}
}
maze[x][y]=0;//把(nx,ny)尝试后清除当前标记
len--; }
int main()
{
dfs(0,0);
}
迷宫问题,打印所有路径,深度搜索,dfs的更多相关文章
- 数据结构之 栈与队列--- 走迷宫(深度搜索dfs)
走迷宫 Time Limit: 1000MS Memory limit: 65536K 题目描述 一个由n * m 个格子组成的迷宫,起点是(1, 1), 终点是(n, m),每次可以向上下左右四个方 ...
- Word Search(深度搜索DFS,参考)
Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from l ...
- 洛谷P1605 迷宫 深度搜索 模板!
题目背景 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫中移动有上下左右四种方式,每次只能移 ...
- 题目--oil Deposits(油田) 基础DFS(深度搜索)
上一次基本了解了下BFS,这次又找了个基本的DFS题目来试试水,DFS举个例子来说就是 一种从树的最左端开始一直搜索到最底端,然后回到原端再搜索另一个位置到最底端,也就是称为深度搜索的DFS--dep ...
- [LeetCode] Convert Sorted List to Binary Search Tree DFS,深度搜索
Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...
- [LeetCode] Maximum Depth of Binary Tree dfs,深度搜索
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...
- [LeetCode] Sum Root to Leaf Numbers dfs,深度搜索
Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ...
- F - 蜘蛛牌(深度搜索)
Problem Description 蜘蛛牌是windows xp操作系统自带的一款纸牌游戏,游戏规则是这样的:只能将牌拖到比她大一的牌上面(A最小,K最大),如果拖动的牌上有按顺序排好的牌时,那么 ...
- 【算法入门】深度优先搜索(DFS)
深度优先搜索(DFS) [算法入门] 1.前言深度优先搜索(缩写DFS)有点类似广度优先搜索,也是对一个连通图进行遍历的算法.它的思想是从一个顶点V0开始,沿着一条路一直走到底,如果发现不能到达目标解 ...
- 深度优先搜索(DFS)递归形式改为非递归形式
DFS将递归改为非递归这个方法的需求来自于一道三维积木组合的题目,还在苦苦调试中,暂且不提. 普通的认识对于递归向非递归的转化无非是使用栈,但是结合到深度搜索如何将栈很好利用,如何很好保存现场,都不是 ...
随机推荐
- nginx负载均衡中利用redis解决session一致性问题
关于session一致性的现象及原因不是本小作文的重点,可以另行找杜丽娘O(∩_∩)O哈哈~重点是利用redis集中存储共享session的实际操作. 一.业务场景:nginx/tomcat/redi ...
- k8s功能、各组件介绍以及pod创建流程
一.什么是Kubernetes Kubernetes(k跟s中间隔了8个字母又称k8s) 是谷歌开源的容器集群管理系统,是 Google 多年大规模容器管理技术Borg 的开源版本,主要功能包括: 基 ...
- Qunar风控安全产品的探索之路
李建威.2017年7月以春招实习生的身份加入去哪儿网,毕业后一直在从事抓取与反抓取相关工作,先后负责搭建过智能打码.设备指纹以及环境检测等服务.目前主要负责反爬风控的基础安全产品建设.对各类作弊原理感 ...
- Spring源码之BeanFactoryPostProcessor(后置处理器)
Spring源码之BeanFactoryPostProcessor(后置处理器). 有点水平的Spring开发人员想必都知道BeanFactoryPostProcessor也就是常说的后置管理器,这是 ...
- Smartbi扩展性怎么样,是否方便扩展开发产品已有功能?
Smartbi大数据分析工具具有很强的扩展性,通过"稳定内核+API扩展"的架构,通过报表插件扩展的方式,能满足很多应用项目的定制化需求,把新功能无缝集成到系统中. Smartbi ...
- CentOS启动流程及Shell脚本编程练习
转至:http://www.178linux.com/88910 一.请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 第一步:POST加电自检 主要实现的功能是检测各个外围硬件 ...
- Eclipse Debug 调试步骤及注意事项
debug方法 第一步:打开java代码文件,在左侧双击鼠标设置断点,或者在左侧右键点击Toggle Breakpoint 第二步:点击eclipse上方的"蜘蛛"按钮,点击deb ...
- low-code
low-code特点: 1. 一个创造软件的开发环境,类似vs-code: 2. 通过可视化拖拽和参数配置高效开发. 1. 背景 1.1 目标 需求的交付质量和交付效率一直是中后台项目开发中非常关注的 ...
- IntelliJ:JUnit单元测试
0.参考 在Intellij IDEA中添加JUnit单元测试 - 唐啊唐囧囧 - 博客园 1.引言 JUnit是Java中很出名的一个单元测试,关于JUnit的具体介绍,可以看之前写的编写JUnit ...
- IntelliJ:自动生成JavaBean的读写方法
1.定义好一个class,其中写好private属性. 2.右键点击该class,在generate中选择自动根据模板生成的读写方法.