文章目录

  • 1. 题目
  • 2. 解题

1. 题目

描述
现在有一个简易版的扫雷游戏,你将得到一个n*m大小的二维数组作为游戏地图。
每个位置上有一个值(0或1,1代表此处没有雷,0表示有雷)。
你将获得一个起点的位置坐标(x,y),x表示所在行数,y表示所在列数(x,y均从0开始计数)。
若当下位置上没有雷,则上下左右四个方向均可以到达,
若当下位置有雷,则不能再往新的方向移动。 请问一共有哪些位置是可以到达的呢?

0<n,m<=200. 答案返回一个任意顺序的数组,数组包括所有可以到达的位置坐标。

示例

样例1
输入: [[1,0,0,0],[1,0,0,0],[0,1,1,1],[0,1,0,0]][0,1]
输出: [[0,1]]
解释:[0,1]位置上是0,不能再往新的地方走,只能到达这一个位置样例2
输入: [[1,0,0,0],[1,0,0,0],[0,1,1,1],[0,1,0,0]][1,0]
输出: [[0,0],[1,0],[1,1],[2,0],[0,1]]
解释:[1,0]位置上是1,所以可以走到[[0,0],[1,1],[2,0]],
其中只有[0,0]位置上是1可以继续走到[0,1],然后不能再走了。

来源:https://tianchi.aliyun.com/oj/141754208384739500/160296091929219252

2. 解题

  • 广度优先搜索
class Solution {public:/*** @param Mine_map: an array represents the map.* @param Start: the start position.* @return: return an array including all reachable positions.*/vector<vector<int>> Mine_sweeping(vector<vector<int>> &Mine_map, vector<int> &Start) {// write your code herevector<vector<int>> ans;vector<vector<int>> dir = {{1, 0},{0, 1},{-1,0},{0,-1}};int m = Mine_map.size(), n = Mine_map[0].size();vector<vector<bool>> vis(m, vector<bool>(n, false));queue<vector<int>> q;q.push(Start);vis[Start[0]][Start[1]] = true;while(!q.empty()){int x = q.front()[0];int y = q.front()[1];q.pop();ans.push_back({x, y});if(Mine_map[x][y] == 0)//是地雷,不能再走了continue;for(int k = 0; k < 4; ++k){int i = x + dir[k][0];int j = y + dir[k][1];if(i>=0 && i < m && j>=0 && j < n && !vis[i][j]){vis[i][j] = true;q.push({i, j});}}}return ans;}
};

151ms C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

天池 在线编程 扫雷(BFS)相关推荐

  1. 【组队学习】【34期】阿里云天池在线编程训练营

    阿里云天池在线编程训练营 航路开辟者:陈信达.杨世超.赵子一.马燕鹏 领航员:武帅.初晓宇.叶前坤.邱广坤.朱松青 航海士:宁彦吉.肖桐.汪超.陈信达.杨世超.赵子一.武帅.初晓宇.叶前坤.邱广坤.朱 ...

  2. 天池在线编程 2020国庆八天乐 - 4. 生成更大的陆地(BFS)

    文章目录 1. 题目 2. 解题 1. 题目 https://tianchi.aliyun.com/oj/118289365933779217/122647324262601668 LeetCode ...

  3. 天池 在线编程 最长AB子串(哈希)

    文章目录 1. 题目 2. 解题 1. 题目 描述 给你一个只由字母'A'和'B'组成的字符串s,找一个最长的子串,要求这个子串里面'A'和'B'的数目相等,输出该子串的长度. 这个子串可以为空. s ...

  4. 天池 在线编程 最大子树(自底向上)

    文章目录 1. 题目 2. 解题 1. 题目 描述 给你一棵二叉树,找二叉树中的一棵子树,他的所有节点之和最大. 返回这棵子树的根节点. 我会把你返回的节点作为最优子树的树根来打印. 数据保证有且仅有 ...

  5. 天池 在线编程 输入流

    文章目录 1. 题目 2. 解题 1. 题目 描述 给出两个输入流 inputA 和 inputB(包含退格符), 如果两个输入流最后的结果相等,输出 YES,否则输出 NO. 输入字符只包括小写字母 ...

  6. 天池 在线编程 推荐朋友(哈希)

    文章目录 1. 题目 2. 解题 1. 题目 描述 给n个人的朋友名单,告诉你user是谁,请找出user最可能认识的人.(他和user有最多的共同好友且他不是user的朋友) n <= 500 ...

  7. 天池 在线编程 停车困境(双指针)

    文章目录 1. 题目 2. 解题 1. 题目 描述 停车场里停着许多汽车. 停车位是一条很长的直线,每米都有一个停车位. 当前很多汽车停放,您想通过建造屋顶来遮雨挡雨. 要求至少有k辆车的车顶被车顶遮 ...

  8. 天池 在线编程 回文子串(区间动态规划)

    文章目录 1. 题目 2. 解题 1. 题目 描述 小明喜欢玩文字游戏,今天他希望在一个字符串的子串中找到回文串. 回文串是从左往右和从右往左读相同的字符串,例如121和tacocat.子串是一个字符 ...

  9. 天池 在线编程 订单分配(回溯)

    文章目录 1. 题目 2. 解题 1. 题目 描述 打车派单场景, 假定有N个订单,待分配给N个司机. 每个订单在匹配司机前,会对候选司机进行打分,打分的结果保存在N*N的矩阵score,其中scor ...

最新文章

  1. 使用Zabbix通过BMC管理口监控HP服务器
  2. CVPR2022 | 只用一张图+相机走位,AI就能脑补周围环境,来自华人团队
  3. 【模板】匈牙利算法 二分图最大匹配题模板
  4. 利用sqoop将oracle 11g中的表迁移至hive表
  5. 12.Flask-Restful
  6. abaqus2021+vs2018+intel oneAPI2022关联程序
  7. 用计算机做初中模拟物理实验,仿真物理实验室初中完整版
  8. 利用charles抓包
  9. ffmpeg水印制作
  10. 搭建fastdfs服务,及单机redis服务,springboot实现h5与fastdfs之间的断点续传,大文件上传,秒传文件和批量上传
  11. 谷粒商城学习笔记(更新中)
  12. 【计网】2.2.4 Web缓存/代理服务器
  13. EFS加密解密----重装系统后
  14. WindowServer2012R2+Anoconda3.5.0.1+CUDA9.0+cuDNN7.1.3+Tensorflow-gpu1.6离线搭建深度学习开发环境
  15. ospf 指定dr_OSPF协议 DR/BDR的选取规则
  16. python获得股票数据并画图
  17. mysql 索引未命中_mysql索引命中规则
  18. android 九宫格图案解锁
  19. 舰载光电跟踪与火控系统发展
  20. mac apache加载php,Apache 2.4没有加载php5.5与Mac OS 10.8

热门文章

  1. php根据浏览器调用支付_Android通过外部浏览器调用微信H5支付,Android+PHP详解
  2. java 井字棋 人机_井字游戏 人机对战 java实现
  3. keyshot环境素材文件_快速学会keyshot基础渲染的步骤
  4. 【Python的黑魔法】实例方法、静态方法和类方法
  5. python中tkinter的使用-中
  6. python实参_python的形参和实参
  7. Windows 下 Python 环境搭建
  8. QT之深入理解QThread
  9. C语言判断两字符串同构,c语言实现判断两颗树是否同构
  10. sd_fusing.sh将uboot烧写到SD卡