国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

寒假17:迷宮問題01,能否走出去

2019-11-14 09:25:52
字體:
來源:轉載
供稿:網友

昨天晚上老師講了下迷宮問題,感覺聽懂了。然后自己算是拓展下,加了一道墻,省掉后面一大部分的判斷,然后將四個方向合并到一個for循環里面了。

迷宮問題
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 18565 Accepted: 10989

Description

定義一個二維數組: 
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, 1, 0,};它表示一個迷宮,其中的1表示墻壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求編程序找出從左上角到右下角的最短路線。

Input

一個5 × 5的二維數組,表示一個迷宮。數據保證有唯一解。

Output

左上角到右下角的最短路徑,格式如樣例所示。

Sample Input

0 1 0 0 00 1 0 1 00 0 0 0 00 1 1 1 00 0 0 1 0

Sample Output

(0, 0)(1, 0)(2, 0)(2, 1)(2, 2)(2, 3)(2, 4)(3, 4)(4, 4)

Source

代碼部分:

import java.util.Scanner;public class migong {	static int[][] map=new int[7][7];	static int[][] visited=new int[7][7];	static boolean flag=false;		//四個方向,放在一個數組里	static int[][] fx=new int[][]{{0,1},{1,0},{0,-1},{-1,0}};		public static void main(String[] args) {				Scanner sc=new Scanner(System.in);				for (int i = 0; i < 7; i++) {			for (int j = 0; j < 7; j++) {				if(i==0||j==0||i==6||j==6)//加一道墻					map[i][j]=1;				else{					map[i][j]=sc.nextInt();				}			}		}		dfs(1,1);		if(flag)			System.out.PRintln("OK!");		else			System.out.println("NO!");	}	private static void dfs(int i, int j) {				//到達終點		if(i==5&&j==5){			flag=true;			return;		}				for (int k = 0; k < 4; k++) {			if(check(i+fx[k][0],j+fx[k][1])){				visited[i+fx[k][0]][j+fx[k][1]]=1;				dfs(i+fx[k][0],j+fx[k][1]);			}		}		//		//向下走//		if(check(i,j+1)){//			visited[i][j+1]=1;//			dfs(i,j+1);//		}//		//向右走//		if(check(i+1,j)){//			visited[i+1][j]=1;//			dfs(i+1,j);//		}//		//向上走//		if(check(i,j-1)){//			visited[i][j-1]=1;//			dfs(i,j-1);//		}//		//向左走//		if(check(i-1,j)){//			visited[i-1][j]=1;//			dfs(i-1,j);//		}			}		//檢查是否可以走	private static boolean check(int i, int j) {		if(map[i][j]!=1&&visited[i][j]!=1)			return true;		else{			return false;		}	}}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沂水县| 乡宁县| 恩施市| 肥城市| 庆阳市| 大渡口区| 玉山县| 伊宁市| 中卫市| 南漳县| 阿克陶县| 水富县| 当雄县| 晋城| 和田县| 昂仁县| 郧西县| 沈阳市| 延边| 连平县| 西盟| 汉川市| 保山市| 新民市| 鸡泽县| 惠安县| 玛多县| 穆棱市| 禹城市| 庆安县| 上杭县| 凤阳县| 乐清市| 虎林市| 石家庄市| 顺平县| 阜南县| 无棣县| 广水市| 当阳市| 诸城市|