藍橋杯 最短路徑問題
試題描述:最短路徑問題。
定義一個二維數組:
int maze = {
{0, 1, 0, 0, 0},
{0, 1, 0, 1, 0},
{0, 0, 0, 0, 0},
{0, 1, 1, 1, 0},
{0, 0, 0, 1, 0}
};
它表示一個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求編程序找出從左上角到右下角的最短路線。
輸出的效果是
(0, 0)
(1, 0)
(2, 0)
(2, 1)
(2, 2)
(2, 3)
(2, 4)
(3, 4)
(4, 4)
請將以下代碼補充完整。
1 import java.util.*;
2
3 public class Main{
4 private class Point {
5 int x = 0;
6 int y = 0;
7
8 public Point {
9 this(0, 0);
10 }
11
12 public Point(int x, int y) {
13 this.x = x;
14 this.y = y;
15 }
16
17 public boolean equals(Point p) {
18 return (this.x == p.x) && (this.y == p.y); // 填入第1行代碼 完成點與點的比較
19 }
20
21 public String toString {
22 return "(" + x + ", " + y + ")";
23 }
24 }
25
26 private int maze = null;
27 private Stack
28
29 public Main(int[][] maze) {
30 this.maze = maze;
31 }
32
33 public void go {
34 Point out = new Point(maze.length - 1, maze[0].length - 1);
35 Point in = new Point(0, 0);
36 Point curNode = in;
37 Point nextNode = null;
38 while (!curNode.equals(out)) {
39
40 nextNode = new Point(curNode.x, curNode.y);
41
42 if ((nextNode.x+1
47 nextNode.x--;
48 } else if ((nextNode.y-1>=0)&&(maze[curNode.x][curNode.y-1] == 0)) { // 填入第5行代碼
49 nextNode.y--;
50 } else {
51 maze[curNode.x][curNode.y] = 3;
52 if (stack.isEmpty) {
53 System.out.println("Non solution");
54 return;
55 }
56 curNode = stack.pop;
57 continue;
58 }
59 stack.push(curNode);
60 maze[curNode.x][curNode.y] = 2;
61 curNode = nextNode;
62 }
63
64 if (nextNode.equals(out)) {
65 stack.push(nextNode);
66 maze[nextNode.x][nextNode.y] = 2;
67 }
68 for (int i = 0; i < stack.size; i++)
69 System.out.println(stack.elementAt(i));
70 }
71
72 public static void main(String[] args) {
73 int maze = { { 0, 1, 0, 0, 0 }, { 0, 1, 0, 1, 0 }, { 0, 0, 0, 0, 0 }, { 0, 1, 1, 1, 0 },
74 { 0, 0, 0, 1, 0 } };
75 new Main(maze).go;
76 }
77 }
※Spring Boot的properties配置文件讀取
※一不小心,陷入TCP的性能問題
※ZooKeeper分布式鎖淺談(一)
※編寫基於TCP的應用程序
※javascript痛點之一變數作用域
TAG:科技優家 |
※最短路徑優先
※謎之問題:溺水救人的最短路徑
※哪個星座平時腦子最容易短路發抽
※哪個星座平時腦子最容易短路發抽
※漫畫:如何求圖的最短路徑? | 技術頭條
※Lingo實戰——最短路徑問題
※電短路死魚,那水短路又是怎麼回事?
※保護電氣線路 防止漏電短路
※「截停」鋰枝晶 單層石墨烯電極可避免鋰電池短路
※痛心!疑因插線板短路 4歲女孩雙腿被「燒焦」
※從「五官」找話題,讓你和女生的聊天「不短路」
※電線接頭怎麼處理才好?難怪自己家老是出現短路問題了
※從0到1,小型設計公司通往品牌的最短路徑
※CBA焦點戰頻爆衝突!山東鐵衛又短路!又遭驅逐成山東不定時炸彈
※在家庭中該怎樣注意電路短路?
※調節大腦「短路」之妙法
※怎樣用萬用表檢查線路是短路,還是接地?
※經常腦子抽筋、短路的星座有哪些
※這種武器一枚下去能讓整座城市短路
※跟上司說這五句話,就是自尋短路