您的位置:首页 > 房产 > 家装 > 苏州网站制作的公司_网页制作能干什么_网络优化的工作内容_下载官方正版百度

苏州网站制作的公司_网页制作能干什么_网络优化的工作内容_下载官方正版百度

2025/1/9 18:02:48 来源:https://blog.csdn.net/weixin_43741616/article/details/143496002  浏览:    关键词:苏州网站制作的公司_网页制作能干什么_网络优化的工作内容_下载官方正版百度
苏州网站制作的公司_网页制作能干什么_网络优化的工作内容_下载官方正版百度

HJ43 迷宫问题
迷宫问题

描述 定义一个二维数组 N*M ,如 5 × 5 数组下所示:

int maze[5][5] = {
0, 1, 0, 0, 0,
0, 1, 1, 1, 0,
0, 0, 0, 0, 0,
0, 1, 1, 1, 0,
0, 0, 0, 1, 0,
};

它表示一个迷宫,其中的1表示墙壁,0表示可以走的路, 只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的路线。
入口点为[0,0],既第一格是可以走的路。

数据范围:2≤n,m≤10  , 输入的内容只包含 0≤val≤1     
输入描述:输入两个整数,分别表示二维数组的行数,列数。 			再输入相应的数组,其中的1表示墙壁,0表示可以走的路。数据保证有唯一解,不考虑有多解的情况,即迷宫只有一条通道。     
输出描述:左上角到右下角的最短路径,格式如样例所示。 ```
using System;
using System.Collections.Generic;public class Program
{public static void Main(){string str = Console.ReadLine();int m = Convert.ToInt32(str.Split(' ')[0]);int n = Convert.ToInt32(str.Split(' ')[1]);int[,] dp=new int[m,n];for (int i = 0; i < m; i++){string mstr = Console.ReadLine();for (int j = 0; j < n; j++){dp[i, j] = Convert.ToInt32(mstr.Split(' ')[j]);}}Stack<int> stacks = new Stack<int> ();stacks.Push(0);Stack<(int, int)> stack = new Stack<(int, int)>();stack.Push((0,  0));int s = 0;for (int i = 0,j=0; i < m && j < n; ){if (i == m - 1 && j == n - 1){break;}if (j + 1 < n && dp[i,j + 1] == 0 && s< 1 && !stack.Contains((i, j + 1))){stack.Push((i, j + 1));stacks.Push(1);s = 0;j++;continue;}if (i + 1 < m && dp[i+1, j] == 0 &&  s < 2 && !stack.Contains((i + 1, j))){stack.Push((i + 1, j));stacks.Push(2);s = 0;i++;continue;}if (j > 0 && dp[i, j-1] == 0 && s <3 && !stack.Contains((i, j-1))){stack.Push((i, j - 1));stacks.Push(3);s = 0;j--;continue;}if (i > 0 && dp[i - 1, j] == 0 &&  s <4 &&!stack.Contains((i -1,j))){stack.Push((i - 1, j));stacks.Push(4);s = 0;i--;continue;}stack.Pop();var sit = stack.Peek();i = sit.Item1;j = sit.Item2;s = stacks.Pop();}Stack<(int, int)> stackseq = new Stack<(int, int)>();foreach (var item in stack){stackseq.Push(item);}foreach (var item in stackseq){Console.WriteLine("(" + item.Item1 + "," + item.Item2 + ")");}}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com