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

网站赏析案例网站推广的优点

网站赏析案例,网站推广的优点,wordpress 获取category,公司建设网站属于什么费用题目描述 在二维网格 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.dnsts.com.cn/news/251366.html

相关文章:

  • 电商网站建设行情电子商务网站硬件建设的核心
  • 活动策划公司网站做网站要学那些
  • 网站关键词搜索排名网站安全检测工具
  • 广州网站建设报价单网页生成器
  • vps做网站怎么加速网页版微信登录手机会显示吗
  • 西安微网站制作郑州专业网站推广公司
  • 常用设计网站有哪些软件内网域名
  • 专业网站建设网页推广宣传片制作公司查询
  • 做电缆好的网站企业简介宣传片视频
  • 罗湖商城网站建设哪家技术好如何用腾讯云做网站
  • 如何申请网站空间夸克网页版
  • 镇江城乡建设网站首页网页升级访问更新中狼
  • 上海平台网站建设报品牌推广营销
  • 做网站播放未上映的电影专门做纪录片的网站
  • 高性能网站建设指南 百度云ipad 建网站
  • 抓取网站访客qq公司商标注册怎么弄
  • 网上做兼职的网站有哪些工作wordpress数据迁移还原教程
  • 万州网站建设多少钱美工设计培训
  • 网站内容栏目wamp做网站
  • 网站制作app开发公司网站seo站群软件
  • 物业公司网站设计外贸网站后台
  • 东莞网站建设搭建directory wordpress
  • 淮北网站建设求职简历太仓网站建设服务
  • 利鑫做彩票网站门户网站怎么建设
  • 网站后台添加新闻wordpress 禁止索引目录
  • 自流井移动网站建设线上运营平台有哪些
  • 做网站买域名多少钱深圳网站设计报价
  • 公司网站建站流程邯郸网站设计报价
  • 建设网站的风险分析开不锈钢公司怎么做网站
  • 做像素画的网站谁能给个网址啊