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

办公门户网站模板下载平面设计招聘58同城

办公门户网站模板下载,平面设计招聘58同城,wordpress网站视频播放,昆明做网站找哪个公司好文章目录1. 题目2. 解题2.1 BFS2.2 DFS1. 题目 让我们一起来玩扫雷游戏#xff01; 给定一个代表游戏板的二维字符矩阵。 ‘M’ 代表一个未挖出的地雷#xff0c; ‘E’ 代表一个未挖出的空方块#xff0c; ‘B’ 代表没有相邻#xff08;上#xff0c;下#xff0c;左… 文章目录1. 题目2. 解题2.1 BFS2.2 DFS1. 题目 让我们一起来玩扫雷游戏 给定一个代表游戏板的二维字符矩阵。 ‘M’ 代表一个未挖出的地雷 ‘E’ 代表一个未挖出的空方块 ‘B’ 代表没有相邻上下左右和所有4个对角线地雷的已挖出的空白方块 数字‘1’ 到 ‘8’表示有多少地雷与这块已挖出的方块相邻 ‘X’ 则表示一个已挖出的地雷。 现在给出在所有未挖出的方块中‘M’或者’E’的下一个点击位置行和列索引 根据以下规则返回相应位置被点击后对应的面板 如果一个地雷‘M’被挖出游戏就结束了- 把它改为 ‘X’。如果一个没有相邻地雷的空方块‘E’被挖出修改它为‘B’并且所有和其相邻的方块都应该被递归地揭露。如果一个至少与一个地雷相邻的空方块‘E’被挖出修改它为数字‘1’到’8’表示相邻地雷的数量。如果在此次点击中若无更多方块可被揭露则返回面板。 示例 1 输入: [[E, E, E, E, E],[E, E, M, E, E],[E, E, E, E, E],[E, E, E, E, E]] Click : [3,0] 输出: [[B, 1, E, 1, B],[B, 1, M, 1, B],[B, 1, 1, 1, B],[B, B, B, B, B]] 解释:示例 2 输入: [[B, 1, E, 1, B],[B, 1, M, 1, B],[B, 1, 1, 1, B],[B, B, B, B, B]] Click : [1,2] 输出: [[B, 1, E, 1, B],[B, 1, X, 1, B],[B, 1, 1, 1, B],[B, B, B, B, B]] 解释:注意 输入矩阵的宽和高的范围为 [1,50]。 点击的位置只能是未被挖出的方块 (M 或者 E)这也意味着面板至少包含一个可点击的方块。 输入面板不会是游戏结束的状态即有地雷已被挖出。 简单起见未提及的规则在这个问题中可被忽略。 例如当游戏结束时你不需要挖出所有地雷考虑所有你可能赢得游戏或标记方块的情况。来源力扣LeetCode 链接https://leetcode-cn.com/problems/minesweeper 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题 2.1 BFS class Solution { public:vectorvectorchar updateBoard(vectorvectorchar board, vectorint click) {if(board[click[0]][click[1]] M)//点击的是地雷直接标记X结束{board[click[0]][click[1]] X;return board;}vectorvectorint dir {{1,0},{0,1},{-1,0},{0,-1},{1,1},{-1,-1},{1,-1},{-1,1}};int m board.size(), n board[0].size();int i, j, x, y, k, count;queuevectorint q;q.push(click);vectorvectorbool visited(m,vectorbool(n,false));//访问标记visited[click[0]][click[1]] true;while(!q.empty()){i q.front()[0];j q.front()[1];q.pop();count 0;for(k 0; k 8; k){x i dir[k][0];y j dir[k][1];if(x0 xm y0 yn board[x][y]M)count;//8个方向有几颗地雷}if(count 0)//地雷为0需要周围的都加入队列去检查是否继续翻开{board[i][j] B;//中间标记为Bfor(k 0; k 8; k){x i dir[k][0];y j dir[k][1];if(x0 xm y0 yn !visited[x][y] board[x][y]E){q.push({x,y});visited[x][y] true;}}}else{ //不为零标记为数字board[i][j] char(0count);}}return board;} };2.2 DFS class Solution {vectorvectorint dir {{1,0},{0,1},{-1,0},{0,-1},{1,1},{-1,-1},{1,-1},{-1,1}};int m,n; public:vectorvectorchar updateBoard(vectorvectorchar board, vectorint click) {if(board[click[0]][click[1]] M){board[click[0]][click[1]] X;return board;}m board.size(), n board[0].size();vectorvectorbool visited(m,vectorbool(n,false));visited[click[0]][click[1]] true;dfs(board,click[0],click[1],visited);return board;}void dfs(vectorvectorchar board, int i, int j, vectorvectorbool visited){int x, y, k, count 0;for(k 0; k 8; k){x i dir[k][0];y j dir[k][1];if(x0 xm y0 yn board[x][y]M)count;//8个方向有几颗地雷}if(count 0)//地雷为0需要周围的都加入队列去检查是否继续翻开{board[i][j] B;//中间标记为Bfor(k 0; k 8; k){x i dir[k][0];y j dir[k][1];if(x0 xm y0 yn !visited[x][y] board[x][y]E){visited[x][y] true;dfs(board,x,y,visited);}}}else{ //不为零标记为数字board[i][j] char(0count);}} };
http://www.pierceye.com/news/11629/

相关文章:

  • 有了域名自己电脑怎么做网站做做网站app
  • 东营网站建设app开发北京网络电视台
  • 医药网站文案编辑是怎么做的百度指数查询官方下载
  • 网站制作多少钱一个月自适应网站的代表
  • 建物流网站咖啡网站设计
  • 网站建设项目结构分析报告有没有专业做挂的网站吗
  • 个人博客网站实验报告seo课程培训机构
  • 笔记本网站开发背景网站上线前需要做什么
  • 如何申请建设网站住房与建设部网站
  • 建设网站需要了解什么泉州做网站的公司
  • 泰安建设信息网站wordpress创建模板
  • 有没有做西餐的视频网站ic交易网站建设
  • 太平洋保险网站学校门户网站模板
  • 做网站需要哪些软件赣州网站建设联系方式
  • 景区门户网站建设眼镜网站怎么做
  • 三合一网站搭建价格汉中网络推广
  • 浙江省信息港做seo用什么网站系统
  • 东阳网站建设有哪些广州抖音seo
  • 海安县住房和城乡建设局网站天元建设集团有限公司注册资金
  • 网页设计与网站建设试卷网站历史频道怎么做
  • 佛山网站建设怎么办wordpress数据库介绍
  • 建设部人才中心网站苗木网站怎么做
  • 免费自助建站系统平台 贴吧网站设计制作一条龙多少钱
  • 做二维码的网站软件商城安装
  • 怎么快速搭建网站怎样在亚马逊网上开店
  • 超市网站怎么做的网站开发公司上
  • 浙江政务服务网登录入口网站seo推广方案
  • 网站改版建设恒信在线做彩票的是什么样的网站
  • 微商怎么做网站yiqicms主站调用一级目录wordpress博客的文章?
  • 网站排名优化公司推荐企业邮箱号码