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

炫酷个人网站php源码网站开发实习生

炫酷个人网站php源码,网站开发实习生,眉山 网站开发,有哪些建设网站的大公司题目描述 在二维网格 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/92912.html

相关文章:

  • 建设购物网站流程图网站开发 站长统计
  • 郑州企业网站快速优化多少钱陕西省住房和建设厅官方网站
  • Seo自己做网站链接转二维码生成器
  • 企业网站建设内容规划网站建设项目需求分析报告
  • 学院网站信息化建设photoshop教程
  • seo全称英文怎么说长沙抖音seo公司地址
  • 上海市住房和城乡建设厅网站查询网站建设项目经费的报告
  • 建网站一定要备案吗临县网站建设
  • 网站建立需要什么族蚂建站怎么样
  • 网站怎么更改域名解析网站推广的基本方法是哪四个
  • wordpress网站主机中国发展在线网站官网
  • SharePoint做网站好吗网站开发与维护的岗位特点职责
  • 网站建设是前端么wordpress批量删掉文章内的文字
  • 国内做网上旅游业务的网站logo制作步骤
  • 容桂品牌网站建设wordpress dux 1.6
  • 做微商卖产品在哪个网站销量能好点网站建设费计入无形资产
  • 做律师网站电销实时新闻
  • 企业网站如何备案流程玛迪网站建设
  • 怎么自己做网站空间淘宝app网站建设
  • 自己在家怎么做跨境电商百度seo排名优化软件
  • 公司建设网站制作做两个网站 之间超链接
  • 搭建网站要多少钱access网站开发
  • 龙岩网站建设要多二建查询官网入口
  • 短视频网站开发国外 网站 设计
  • 无锡网站建设机构网站计算机速成培训班
  • 创建网站制作仪表企业app开发网上app开发
  • 如何做网站主页网站建设需要度搜去
  • sem竞价教程搜索引擎优化文献
  • 无锡网站建设优化公司蚌埠网站建设公司cztv
  • 太原高级seo主管宁波seo推广优化怎么做