迷宫
0代表可走的地方,1代表不可走的地方。每次只能走上下左右四个地方。
问题:从起始点到终点的最短路径是什么?
- 每一个点的坐标表示为一个类Point,start为起始点,end为终点
class Point{
public int x;
public int y;
Point(int x,int y){
this.x = x;
this.y = y;
}
@Override
public String toString(){
return "[x="+x+",y="+y+"]";
}
}
-
思路分析:
1. 利用一个队列,把起始点加入队列,这里用LinkedList模拟队列
LinkedList queue = new LinkedList();
2. 输出队头元素,把队头元素的四周可到达的点也加入队列
- 利用一个Point数组存放一个点可到达的四周其他点的集合
static Point[] around(Point point,int[][] graph){
if(point.x<0 || point.y>=n){
return null;
}
else{
Point[] points = new Point[4];
//下面这个点存在且可走
if(point.x