啊哈算法第四章第三节 层层递进-广度优先搜索 java实现
package corejava; public class FourThree {
static int [][]a=new int[50][50];
static int [][]b=new int[50][50]; static int m;
static int n;
static int p;
static int q; public static void dfs(int step) {
System.out.println("dfs"+step);
int [][]next={{0,1},{1,0},{0,-1},{-1,0}};
if(b[p][q]>0)
return;
int c=0;
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
{
//System.out.print("b["+i+"]["+j+"]"+b[i][j]);
if(b[i][j]==step+1)
{ for(int k=0;k<4;k++)
{
int tx=i+next[k][0];
int ty=j+next[k][1];
if(tx<0||tx>m||ty<0||ty>n)
{
continue; }
if(a[tx][ty]==0&b[tx][ty]==0)
{
c++;
b[tx][ty]=step+2; System.out.print("step"+(step+1) +"("+tx+","+ty+")");
if(tx==p&ty==q)
{
System.out.println("step"+step); System.out.println(" "); return; } } }
}
}
if(c==0)
return;
dfs(step+1); }
public static void main(String []args)
{ m = 5;
n = 4;
int startx=0;
int starty=0;
p=3;
q=2;
b[startx][starty]=1; a[0][2]=1;
a[2][2]=1;
a[3][1]=1;
a[4][3]=1; dfs(0); } }
这里没有用例子里的结构体,采用了一个数组b【】【】存放该位置可几步到达,因为数组内容默认为0,固存放的为可到达步数加一。一个一个往下延伸。但是这里用到循环来查找,当地图比较大,循环次数会很多。
啊哈算法第四章第三节 层层递进-广度优先搜索 java实现的更多相关文章
- 微信小程序教学第四章第三节(含视频):小程序中级实战教程:详情-功能完善
详情 - 功能完善 本文配套视频地址: https://v.qq.com/x/page/f0555nfdi14.html 开始前请把 ch4-3 分支中的 code/ 目录导入微信开发工具 这一节中, ...
- 《On Lisp》第四章第三节图4.6中的rmapcar函数中展现的apply陷阱
(defun rmapcar (fn &rest args) (if (some #'atom args) (apply fn args) (apply #'mapcar #'(lambda ...
- 《On Lisp》第四章第三节图4.3中的prune函数fix
这个函数作者的原意是删除表中test位真的部分,并且表按原样返回. 作者给出的的测试用例如下: (prune #'evenp '(1 2 (3 (4 5) 6) 7 8 (9))) 返回结果是: (1 ...
- 啊哈算法第四章第二节解救小哈Java实现
package corejava; public class FourTwo { static int m;//(m,n)为几行几列 static int n; static int p;//(p,q ...
- 第六章 图(c)广度优先搜索
- C# Language Specification 5.0 (翻译)第四章 类型
C# 语言的类型分为两大类:值类型(value type)和引用类型(reference type),而它们又都同时具有至少一个类型形参的泛型类型(generic type).类型形参(type pa ...
- MyBatis 3(中文版) 第四章 使用注解配置SQL映射器
本章将涵盖以下话题: l 在映射器Mapper接口上使用注解 l 映射语句 @Insert,@Update,@Delete,@SeelctStatements l 结果映射 一对一映射 一对多映射 l ...
- 《算法》第四章部分程序 part 19
▶ 书中第四章部分程序,包括在加上自己补充的代码,有边权有向图的邻接矩阵,FloydWarshall 算法可能含负环的有边权有向图任意两点之间的最短路径 ● 有边权有向图的邻接矩阵 package p ...
- 《算法》第四章部分程序 part 18
▶ 书中第四章部分程序,包括在加上自己补充的代码,在有权有向图中寻找环,Bellman - Ford 算法求最短路径,套汇算法 ● 在有权有向图中寻找环 package package01; impo ...
随机推荐
- 真tm郁闷
昨天这时还是信心满满,今天这时就已经彻底颓了. 感觉这次是最接近的了,4个题目都做出来了,怎么还会fail,那边也不说为什么,到底是哪里不足,尽说些没用的. 前后都当了4次炮灰了,以后也不会再冲动了, ...
- 引擎设计跟踪(九.14.3.2) Deferred shading的后续实现和优化
最近完成了deferred shading和spot light的支持, 并作了一部分优化. 之前forward shading也只支持方向光, 现在也支持了点光源和探照光. 对于forward sh ...
- Scrapy 原理
Scrapy 原理 一.原理 scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架.可以应用在包括数据挖掘,信息处理或存储历史数据等一系列程序中. 二.工作流程 Scrapy Engi ...
- 游戏编程模式 Game Programming Patterns (Robert Nystrom 著)
第1篇 概述 第1章 架构,性能和游戏 (已看) 第2篇 再探设计模式 第2章 命令模式 (已看) 第3章 享元模式 (已看) 第4章 观察者模式 (已看) 第5章 原型模式 (已看) 第6章 单例模 ...
- ftruncate
普通文件或共享内存区的大小都可以通过该函数修改 #include <unistd.h> int ftruncate(int fd,off_t leght); //成功返回0失败返回-1 对 ...
- lua 5.3最简单plugin编写
#include <windows.h> #include "lauxlib.h" /* Pop-up a Windows message box with your ...
- [ZZ] 边缘检测 梯度与Roberts、Prewitt、Sobel、Lapacian算子
http://blog.csdn.net/swj110119/article/details/51777422 一.学习心得: 学习图像处理的过程中,刚开始遇到图像梯度和一些算子的概念,这两者到底是什 ...
- php.ini文件下载
该php.ini文件为修改版,完美运行,存于360云盘.
- Git使用,将本地项目推送到GitHub上
首先本地仓库中创建一个项目 ex: proA 在远程github仓库中创建项目 ex: proA 在本地仓库proA下打开terminal 使用命令: 1.git add * 2.git commit ...
- 关于使用format()方法格式化字符串,读这一篇就够了!
从Python 2.6开始,又出现了另外一种格式化字符串的方法——format()方法.format()方法是字符串众多方法中的一个,调用这个方法时要使用点操作符(.),该方法返回一个格式化好的字符串 ...