當前位置:
首頁 > 知識 > 藍橋杯 最短路徑問題

藍橋杯 最短路徑問題

試題描述:最短路徑問題。

定義一個二維數組:

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 stack = new 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=0)&&(maze[curNode.x-1][curNode.y] == 0)) { // 填入第4行代碼
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焦點戰頻爆衝突!山東鐵衛又短路!又遭驅逐成山東不定時炸彈
在家庭中該怎樣注意電路短路?
調節大腦「短路」之妙法
怎樣用萬用表檢查線路是短路,還是接地?
經常腦子抽筋、短路的星座有哪些
這種武器一枚下去能讓整座城市短路
跟上司說這五句話,就是自尋短路