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

网站seo排名优化软件数据分析网

网站seo排名优化软件,数据分析网,搜索引擎营销图片,cn域名注册文章目录1. 题目2. 解题2.1 BFS2.2 爆栈的DFS2.3 不爆栈的DFS1. 题目 给你一个 m x n 的网格 grid。网格里的每个单元都代表一条街道。grid[i][j] 的街道可以是#xff1a; 1 表示连接左单元格和右单元格的街道。2 表示连接上单元格和下单元格的街道。3 表示连接左单元格和下… 文章目录1. 题目2. 解题2.1 BFS2.2 爆栈的DFS2.3 不爆栈的DFS1. 题目 给你一个 m x n 的网格 grid。网格里的每个单元都代表一条街道。grid[i][j] 的街道可以是 1 表示连接左单元格和右单元格的街道。2 表示连接上单元格和下单元格的街道。3 表示连接左单元格和下单元格的街道。4 表示连接右单元格和下单元格的街道。5 表示连接左单元格和上单元格的街道。6 表示连接右单元格和上单元格的街道。 你最开始从左上角的单元格 (0,0) 开始出发网格中的「有效路径」是指从左上方的单元格 (0,0) 开始、一直到右下方的 (m-1,n-1) 结束的路径。该路径必须只沿着街道走。 注意你 不能 变更街道。 如果网格中存在有效的路径则返回 true否则返回 false 。 示例 1 输入grid [[2,4,3],[6,5,2]] 输出true 解释如图所示你可以从 (0, 0) 开始访问网格中的所有单元格并到达 (m - 1, n - 1) 。示例 2 输入grid [[1,2,1],[1,2,1]] 输出false 解释如图所示单元格 (0, 0) 上的街道没有与任何其他单元格上的街道相连你只会停在 (0, 0) 处。示例 3 输入grid [[1,1,2]] 输出false 解释你会停在 (0, 1)而且无法到达 (0, 2) 。示例 4 输入grid [[1,1,1,1,1,1,3]] 输出true示例 5 输入grid [[2],[2],[2],[2],[2],[2],[6]] 输出true提示 m grid.length n grid[i].length 1 m, n 300 1 grid[i][j] 6来源力扣LeetCode 链接https://leetcode-cn.com/problems/check-if-there-is-a-valid-path-in-a-grid 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题 2.1 BFS 广度优先搜索 class Solution {vectorvectorint d {{0,1},{1,0},{-1,0},{0,-1}};//右0下1上2左3vectorvectorvectorint dir {{},{d[0],d[3]},{d[1],d[2]},{d[1],d[3]},{d[0],d[1]},{d[2],d[3]},{d[0],d[2]}};//网格可走的方向int m,n; public:bool hasValidPath(vectorvectorint grid) {m grid.size(), n grid[0].size();vectorvectorbool visited(m, vectorbool(n,false));visited[0][0] true;queuevectorint q;q.push({0,0});int x,y,x0,y0,k,dx,dy;while(!q.empty()){x0 q.front()[0];y0 q.front()[1];if(x0m-1 y0n-1)return true;q.pop();for(k 0; k dir[grid[x0][y0]].size(); k){ //网格可走方向dx dir[grid[x0][y0]][k][0];dy dir[grid[x0][y0]][k][1];x x0dx;y y0dy;if(x0 xm y0 yn !visited[x][y] isok(grid,dx,dy,x,y)){visited[x][y] true;q.push({x,y});}}}return false;}bool isok(vectorvectorint grid, int dx, int dy, int x, int y){ //dx dy 走过来的方向在位置 x y 中有对应的接口则可以走过来if(dx 1 dy 0)//往下走对应x,y处 上 要开着{if(grid[x][y]2 || grid[x][y]5 || grid[x][y]6)return true;}else if(dx 0 dy 1)//右 --左{if(grid[x][y]1 || grid[x][y]3 || grid[x][y]5)return true;}else if(dx -1 dy 0)//上 ---下{if(grid[x][y]2 || grid[x][y]3 || grid[x][y]4)return true;}else if(dx 0 dy -1)//左--- 右{if(grid[x][y]1 || grid[x][y]4 || grid[x][y]6)return true;}return false;} };2.2 爆栈的DFS dfs 方法爆栈代码如下请大佬帮忙看看什么原因 class Solution {vectorvectorint d {{0,1},{1,0},{-1,0},{0,-1}};//右0下1上2左3vectorvectorvectorint dir {{},{d[0],d[3]},{d[1],d[2]},{d[1],d[3]},{d[0],d[1]},{d[2],d[3]},{d[0],d[2]}};bool found false;int m,n; public:bool hasValidPath(vectorvectorint grid) {m grid.size(), n grid[0].size();vectorvectorbool visited(m, vectorbool(n,false));visited[0][0] true;dfs(grid,0,0,visited);return found;}void dfs(vectorvectorint grid, int i, int j,vectorvectorbool visited){if(found)return;if(im-1 jn-1){found true;return;}int x, y, k, dx, dy;for(k 0; k dir[grid[i][j]].size(); k){dx dir[grid[i][j]][k][0];dy dir[grid[i][j]][k][1];x idx;y jdy;if(x0 xm y0 yn !visited[x][y] isok(grid,dx,dy,x,y)){visited[x][y] true;dfs(grid,x,y,visited);visited[x][y] false;}}}bool isok(vectorvectorint grid, int dx, int dy, int x, int y){if(dx 1 dy 0)//往下走对应x,y处 上 要开着{if(grid[x][y]2 || grid[x][y]5 || grid[x][y]6)return true;}else if(dx 0 dy 1)//右 --左{if(grid[x][y]1 || grid[x][y]3 || grid[x][y]5)return true;}else if(dx -1 dy 0)//上 ---下{if(grid[x][y]2 || grid[x][y]3 || grid[x][y]4)return true;}else if(dx 0 dy -1)//左--- 右{if(grid[x][y]1 || grid[x][y]4 || grid[x][y]6)return true;}return false;} };2.3 不爆栈的DFS isok 函数 的 int 变量去掉 就不报错了什么情况。。。 class Solution {vectorvectorint d {{0,1},{1,0},{-1,0},{0,-1}};//右0下1上2左3vectorvectorvectorint dir {{},{d[0],d[3]},{d[1],d[2]},{d[1],d[3]},{d[0],d[1]},{d[2],d[3]},{d[0],d[2]}};bool found false;int m,n; public:bool hasValidPath(vectorvectorint grid) {m grid.size(), n grid[0].size();vectorvectorbool visited(m, vectorbool(n,false));visited[0][0] true;dfs(grid,0,0,visited);return found;}void dfs(vectorvectorint grid, int i, int j,vectorvectorbool visited){if(found)return;if(im-1 jn-1){found true;return;}int x, y, k, dx, dy;for(k 0; k dir[grid[i][j]].size(); k){dx dir[grid[i][j]][k][0];dy dir[grid[i][j]][k][1];x idx;y jdy;if(x0 xm y0 yn !visited[x][y] isok(grid,dx,dy,x,y)){visited[x][y] true;dfs(grid,x,y,visited);visited[x][y] false;}}}bool isok(vectorvectorint grid, int dx, int dy, int x, int y){if(dx 1 dy 0)//往下走对应x,y处 上 要开着{if(grid[x][y]2 || grid[x][y]5 || grid[x][y]6)return true;}else if(dx 0 dy 1)//右 --左{if(grid[x][y]1 || grid[x][y]3 || grid[x][y]5)return true;}else if(dx -1 dy 0)//上 ---下{if(grid[x][y]2 || grid[x][y]3 || grid[x][y]4)return true;}else if(dx 0 dy -1)//左--- 右{if(grid[x][y]1 || grid[x][y]4 || grid[x][y]6)return true;}return false;} };
http://wiki.neutronadmin.com/news/262048/

相关文章:

  • 如何搭建网站杭州百度seo优化
  • 做网站被攻击谁的责任网站建设 技术方案模板
  • 网站建设企业合作邀请函做任务打字赚钱的网站
  • 合肥网站建设推荐 晨飞网络公司网站做论坛
  • 如何将自己做的网站发布到网上wordpress 模版制作
  • 优秀网站的必备要素做一个网站需要多少时间
  • 服务周到的响应式网站seo外链招聘
  • 怎么策划一个网站县市区科普网站建设
  • 做个一般的网站要多少钱wordpress 歌曲列表
  • 网站开发不让搜索引擎学做网站是什么专业
  • 网站的结构与布局优化常州网站建设培训
  • 怎么用php源代码做网站浙江网站建设哪家好
  • 门户网站开发语言网站建设 源码准备
  • 建站工具 wordpress网站交互式
  • 国外工作招聘网站玩具网站模板
  • 河南省建设工程造价信息网站打开网站弹出一张图片 怎么做
  • 环球旅游网的网站建设做网站挣钱来个好心人指点一下呗
  • 昆明网站建设公司小程序无极兼职网
  • 淄博淘宝网站建设租用大型服务器多少钱
  • 建立微网站盘州市网站建设
  • 龙里县建设局管方网站中卫网站建设报价
  • phpcms做网站好吗seo描述快速排名
  • 创业做网站 优帮云开网站做代销好
  • 网站服务器部署商城app定制开发
  • 网站的网站建设企业铜山网站开发
  • 做网站能接到模具单吗wordpress主题插件
  • 用c语言怎么做网站网站建设公司苏州
  • 做网站注意网站模版上线需要什么
  • 提供网站建设备案公司wordpress 3.8 下载
  • 自建站价格青岛北京网站建设公司哪家好