当前位置: 首页 > news >正文

21-bfs-走迷宫(简单模板题)

题目

来源

844. 走迷宫 - AcWing题库

思路

BFS的模板题,用队列实现,可参考:AcWing 844. 走迷宫(数组模拟,C++STL, python、打印路径) - AcWing;其他详见代码。

代码

def bfs():
    d[0][0]=0
    queue=[(0,0)]
    dx=[-1,0,1,0]
    dy=[0,-1,0,1]
    while queue: #队列不能为空
        x,y=queue.pop(0)
        for i in range(4): #四个方向去搜索
            a=x+dx[i]
            b=y+dy[i]
            if a>=0 and a<n and b>=0 and b<m and d[a][b]==-1 and g[a][b]==0: #说明可以走通
                queue.append((a,b)) #入队列
                d[a][b]=d[x][y]+1 #更新距离
    print(d[n-1][m-1])

n,m=map(int,input().split())
g=[[-1 for j in range(m)] for i in range(n)] #地图
d=[[-1 for j in range(m)] for i in range(n)] #距离(每个位置到初始位置的距离)
for i in range(n):
    col=list(map(int,input().split()))
    for j in range(m):
        g[i][j]=col[j] #处理输入
bfs()

相关文章:

  • 3132_nodejs_express后端框架
  • Spring中@Value的使用详解,以及和@ConfigurationProperties使用对比
  • 开源项目解读(https://github.com/zjunlp/DeepKE)
  • 补Java基础之重生(14)API(下)
  • 鸿蒙应用权限深度解析:构建安全可信的分布式应用
  • 绿盟春招面试题
  • 输出3行3列矩阵的鞍点
  • 大商创多用户商城系统存在SQL注入漏洞
  • 【蓝桥杯—单片机】通信总线专项 | 真题整理、解析与拓展 (更新ing...)
  • 如何完全卸载宝塔面板?
  • 媒体直播的力量:解锁新时代传播密码,引爆传播效应,媒介盒子分享
  • dotnet core web api linux主机公网发布
  • 深入解析:ElasticSearch Query 查询方式
  • Redis的Java客户端
  • C++笔记-模板初阶,string(上)
  • Notepad++正则匹配案例
  • 记一个阿里云CDN域名配置不当引起服务鉴权失效问题
  • VMware安装Home Assistant避坑指南
  • 创建Spring Boot项目有哪几种方式
  • [从零开始学习JAVA ] 了解线程池
  • 如何用axure做网站/seo优
  • 在网上那里能接单做网站/柳市网站制作
  • 重庆网站建设网站/谷歌seo详细教学
  • php代码删除网站/销售找客户的app
  • 做团购网站的公司/网址seo关键词
  • html新闻列表/百度关键词相关性优化软件