news 2026/4/18 7:05:14

队列进行迷宫求解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
队列进行迷宫求解

解题思路:

顺序队列使用数组固定容量,从起点进入并标记为-1,代表已访问,出队一个方块e检查是否是终点,若是终点则反向回溯输出完整路径,若不是则寻找四个方向可通行的方块。

关键代码:
struct Box
{
public int i, j;
public int pre;
}
class SqQueue
{
public Box[] data;
public int front, rear;
public SqQueue(int maxSize) { data = new Box[maxSize]; front = rear = -1; }
public bool IsEmpty() => front == rear;
public void EnQueue(Box e) => data[++rear] = e;
public Box DeQueue() => data[++front];
}
static void PrintPath(SqQueue qu, int index)
{
if (index < 0) return;
PrintPath(qu, qu.data[index].pre);
Console.WriteLine($"({qu.data[index].i}, {qu.data[index].j})");
}
static bool MgPath(int xi, int yi, int xe, int ye, int[,] mg)
{
int M = mg.GetLength(0), N = mg.GetLength(1);
SqQueue qu = new SqQueue(M * N);
Box e = new Box { i = xi, j = yi, pre = -1 };
qu.EnQueue(e);
mg[xi, yi] = -1;

int[] di = { -1, 0, 1, 0 };
int[] dj = { 0, 1, 0, -1 };

while (!qu.IsEmpty())
{
e = qu.DeQueue();
if (e.i == xe && e.j == ye)
{
PrintPath(qu, qu.front);
return true;
}

for (int dir = 0; dir < 4; dir++)
{
int ni = e.i + di[dir];
int nj = e.j + dj[dir];
if (ni >= 0 && ni < M && nj >= 0 && nj < N && mg[ni, nj] == 0)
{
Box next = new Box { i = ni, j = nj, pre = qu.front };
qu.EnQueue(next);
mg[ni, nj] = -1;
}
}
}
return false;
}

clone地址:https://github.com/LMingHao-study/-

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 7:02:57

零代码!用Nano-Banana产品拆解引擎为技术文档自动配图

零代码&#xff01;用Nano-Banana产品拆解引擎为技术文档自动配图 1. 为什么需要自动生成产品拆解图 在日常技术文档编写过程中&#xff0c;高质量的产品拆解图往往是最耗时费力的部分。传统方式需要&#xff1a; 聘请专业插画师手工绘制使用复杂3D建模软件制作爆炸图拍摄实…

作者头像 李华
网站建设 2026/4/18 7:01:57

【2024生成式推荐算法权威基准报告】:12家主流平台Llama-3/Gemini/DeepSeek适配实测数据,仅开放72小时下载权限

第一章&#xff1a;生成式AI应用推荐算法优化 2026奇点智能技术大会(https://ml-summit.org) 生成式AI正深度重构推荐系统的核心范式——从传统协同过滤与矩阵分解&#xff0c;转向以大语言模型&#xff08;LLM&#xff09;和扩散模型为基座的语义理解、意图生成与多模态内容合…

作者头像 李华
网站建设 2026/4/18 6:58:49

从游戏到现实:Q-learning、DQN与DDQN的算法演进与实战设计

1. 从《飞翔小鸟》认识强化学习 第一次接触《飞翔小鸟》这个游戏时&#xff0c;我被它简单的操作和极高的难度反差震惊了。作为程序员&#xff0c;我立刻想到&#xff1a;能不能写个AI来帮我通关&#xff1f;这就是我踏入强化学习领域的起点。 强化学习就像教小孩学走路&#x…

作者头像 李华
网站建设 2026/4/18 6:57:30

如何用积木报表在5分钟内创建专业级数据报表?终极指南来了!

如何用积木报表在5分钟内创建专业级数据报表&#xff1f;终极指南来了&#xff01; 【免费下载链接】JimuReport 开源的报表工具与BI大屏&#xff0c;完美替代帆软和Tableau&#xff0c;提供强大的报表能力。一款类似Excel的报表设计器和大屏设计&#xff01;完全在线傻瓜式拖拽…

作者头像 李华
网站建设 2026/4/18 6:57:29

Kandinsky-5.0-I2V-Lite-5s快速上手:Java开发者调用指南与API封装

Kandinsky-5.0-I2V-Lite-5s快速上手&#xff1a;Java开发者调用指南与API封装 1. 开篇&#xff1a;为什么选择Kandinsky-5.0-I2V-Lite-5s 如果你是一名Java开发者&#xff0c;最近可能被各种AI视频生成模型刷屏了。Kandinsky-5.0-I2V-Lite-5s作为一款轻量级的图生视频模型&am…

作者头像 李华