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

口腔医院网站建设松岗做网站联系电话

口腔医院网站建设,松岗做网站联系电话,关于茶网站模板,搜索引擎网络推广方法题目描述 在二维网格 grid 上#xff0c;有 4 种类型的方格#xff1a;1 表示起始方格。且只有一个起始方格。 2 表示结束方格#xff0c;且只有一个结束方格。 0 表示我们可以走过的空方格。 -1 表示我们无法跨越的障碍。 返回在四个方向#xff08;上、下、左、右#…题目描述 在二维网格 grid 上有 4 种类型的方格1 表示起始方格。且只有一个起始方格。 2 表示结束方格且只有一个结束方格。 0 表示我们可以走过的空方格。 -1 表示我们无法跨越的障碍。 返回在四个方向上、下、左、右上行走时从起始方格到结束方格的不同路径的数目。每一个无障碍方格都要通过一次但是一条路径中不能重复通过同一个方格。示例 1输入[[1,0,0,0],[0,0,0,0],[0,0,2,-1]] 输出2 解释我们有以下两条路径 1. (0,0),(0,1),(0,2),(0,3),(1,3),(1,2),(1,1),(1,0),(2,0),(2,1),(2,2) 2. (0,0),(1,0),(2,0),(2,1),(1,1),(0,1),(0,2),(0,3),(1,3),(1,2),(2,2) 示例 2输入[[1,0,0,0],[0,0,0,0],[0,0,0,2]] 输出4 解释我们有以下四条路径 1. (0,0),(0,1),(0,2),(0,3),(1,3),(1,2),(1,1),(1,0),(2,0),(2,1),(2,2),(2,3) 2. (0,0),(0,1),(1,1),(1,0),(2,0),(2,1),(2,2),(1,2),(0,2),(0,3),(1,3),(2,3) 3. (0,0),(1,0),(2,0),(2,1),(2,2),(1,2),(1,1),(0,1),(0,2),(0,3),(1,3),(2,3) 4. (0,0),(1,0),(2,0),(2,1),(1,1),(0,1),(0,2),(0,3),(1,3),(1,2),(2,2),(2,3) 示例 3输入[[0,1],[2,0]] 输出0 解释 没有一条路能完全穿过每一个空的方格一次。 请注意起始和结束方格可以位于网格中的任意位置。提示1 grid.length * grid[0].length 20 来源力扣LeetCode 链接https://leetcode-cn.com/problems/unique-paths-iii 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。思路 从起始格子开始尝试每一个 0 空格。当走到 2 时如果此时网格没有还没走过的空格说明这是一条可行的路径。也就是说我们需要用一个方式来标志已经走过的空格可以把格子设为 -1回溯时需要把格子重新设置为 0不影响其他路径的尝试。 当我们走到 2 时如何判断网格中是否还有未走过的空格 每次都去遍历整个网格的话时间复杂度太高。我们可以在开始先统计网格中一共有多少个可以走的格子每走过一个格子计数器就减一。 复杂度 时间复杂度$O(4^{mn})$, m, n 分别是网格的长宽。找到起始格子和统计空格用了 $O(mn)$递归的时间复杂度 $O(4^{mn})$网格一共有 $mn$ 个格子每个格子有 4 个方向可以走。空间复杂度递归栈的最大空间 O(m∗n)。 p.s. 下方代码是我看错题了求了所有路径。实际上只需要一个计数器来记录路径数不消耗额外空间。 代码 JavaScript Code /*** param {number[][]} grid* return {number}*/ var uniquePathsIII function (grid) {const offsets [[-1, 0],[1, 0],[0, -1],[0, 1],];const ans [];const dfs (grid, x, y, spaceCnt, path) {if (x 0 || x grid.length || y 0 || y grid[0].length) return;if (grid[x][y] 2) {spaceCnt 0 ans.push([...path]);return;}if (grid[x][y] -1) return;grid[x][y] -1; // mark// recursionfor (const [ox, oy] of offsets) {// p.s. 如果 (xox, yoy) 不在网格中或者是障碍的话也可以提前剪枝。dfs(grid, x ox, y oy, spaceCnt - 1, [...path, [x, y]]);}grid[x][y] 0; // backtrack};let startPos {};const init grid {let spaceCnt 1; // 起始方格也是要走的一个格子for (let x 0; x grid.length; x) {for (let y 0; y grid[x].length; y) {if (grid[x][y] 1) startPos { x, y };if (grid[x][y] 0) spaceCnt;}}return spaceCnt;};// 统计要走的格子总数const spaceCnt init(grid);dfs(grid, startPos.x, startPos.y, spaceCnt, []);return ans.length; };
http://www.hkea.cn/news/14373335/

相关文章:

  • 安宁网站建设与制作做3d效果在哪个网站
  • 爱做网站房产中介公司网站源码
  • wordpress apk 中文版手机清理优化软件排名
  • ps制作网站首页界面大连龙彩科技的网站在谁家做
  • 郑州网站建设价格西安做网站 怎样备案
  • 婚介网站方案wordpress 图片加边框
  • led网站模板曙光建设有限公司网站
  • 静态网站 后台外网下载
  • 蓝色 网站网站空间1g多少钱一年
  • 铜陵建设网站网站建设分录
  • 网站海外seo做软件营销网站怎么样
  • 营销型网站建设可视方便建站微网站
  • 淘宝加盟网站建设做网站的人多吗
  • 营销网站建设的公司网页升级请记住新域名
  • 自己做的网站字体变成方框网页制造与网站建设论文
  • 做网站要和企业logo烟台网络推广引流
  • wordpress文章中添加表情济南seo官网优化
  • 北京广告公司工资凡科建的网站怎么做seo
  • 企业网站建设找外包公司做微信小程序界面设计模板
  • 网站被黑是什么原因在网站里继费
  • 网站建设填空题免费精品发布页怎么设计
  • 一个主做海贼王的网站深圳设计网站培训学校
  • 在线教育类网站模板icp备案的网站名称
  • 十大网站在线观看云典 wordpress
  • 可以自己做网站赚钱吗电信外包有必要去吗
  • 溧阳 做网站网站设计的工作要求
  • 做外贸那个网站好兴义建设局网站
  • asp.net做登录网站资源网站做产品的审核工作怎么样
  • 中国男女做网站潍坊大型网站建设平台
  • 网站发布平台嘉兴市南湖区建设街道网站