LC-980. 不同路径 III(回溯)
980. 不同路径 III
难度困难291
在二维网格 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
DFS回溯
https://leetcode.cn/problems/unique-paths-iii/solution/liang-chong-fang-fa-hui-su-zhuang-tai-ya-26py/
class Solution {int m, n;int[][] grid;public int uniquePathsIII(int[][] grid) {this.grid = grid;m = grid.length;n = grid[0].length;int cnt0 = 0, sx = -1, sy = -1;for(int i = 0; i < m; i++){for(int j = 0; j < n; j++){if(grid[i][j] == 0) cnt0++;else if(grid[i][j] == 1){sx = i; sy = j; // 起点}}}return dfs(sx, sy, cnt0 + 1); // 算上起点}// 定义 dfs(z,y,let) 表示从 (a,y) 出发,还剩下 let 个无障碍方格 (不含终点)需要访问时的不同路径个数public int dfs(int x, int y, int left){if(x < 0 || x >= m || y < 0 || y >= n || grid[x][y] < 0)return 0; // 不合法if(grid[x][y] == 2){ // 到达终点return left == 0 ? 1 : 0;} grid[x][y] = -1; // 标记成访问过,因为题目要求「不能重复通过同一个方格」int ans = dfs(x-1, y, left-1) + dfs(x, y-1, left-1) +dfs(x+1, y, left-1) + dfs(x, y+1, left-1);grid[x][y] = 0; // 恢复现场return ans;}
}
相关文章:
LC-980. 不同路径 III(回溯)
980. 不同路径 III 难度困难291 在二维网格 grid 上,有 4 种类型的方格: 1 表示起始方格。且只有一个起始方格。 2 表示结束方格,且只有一个结束方格。 0 表示我们可以走过的空方格。 -1 表示我们无法跨越的障碍。 返回在四个方向&…...
软件测试缺陷报告
缺陷报告是描述软件缺陷现象和重现步骤地集合。软件缺陷报告Software Bug Report(SBR)或软件问题报告Software Problem Report(SPR) 作用:缺陷报告是软件测试人员的工作成果之一,体现软件测试的价值缺陷报…...
vue js-table2excel 导出excel 可带多张图片
1.安装js-table2excel插件: npm install js-table2excel2.使用 2.1:引入 import table2excel from js-table2excel;2.2:导出函数 function exportExcel() {console.log(导出, table2excel);const column [{title: 二维码id,key: fname,type: text,},{title: 二维…...
HTML 基础标签
前言 当今互联网时代,网页是我们获取信息、交流和展示自己的重要渠道之一。而HTML(超文本标记语言)作为构建网页的基础,学习掌握HTML标签成为了必不可少的技能。 标题标签 <h1>~<h6>:这是用来定义标题的…...
Nginx使用proxy_cache指令设置反向代理缓存静态资源
场景 CentOS7中解压tar包的方式安装Nginx: CentOS7中解压tar包的方式安装Nginx_centos7 tar文件 怎么load_霸道流氓气质的博客-CSDN博客 参考上面流程实现搭建Nginx的基础上,实现静态资源的缓存设置。 注意上面安装时的目录是在/opt/nginx目录下&…...
React安装ant design组件库,并使用
ant design是一个很棒的组件库,官方地址:快速上手 - Ant Design 但是如何在React里面用起来,好像并不是很顺畅,没有像Vue里面那么友好,因为我踩过这个坑,虽然安装很简单,但是想要出样式&#x…...
Leetcode | 有效的括号、最长有效括号
一、有效的括号 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应…...
思科模拟器配置静态路由(下一跳使用IP)
Router0配置代码:##端口配置 Router(config)#int fastEthernet 0/0 Router(config-if)#ip address 192.168.10.254 255.255.255.0 Router(config-if)#no shutdown Router(config-if)#int fastEthernet 0/1 Router(config-if)#ip address 192.168.20.1 255.255.255.2…...
MyBatis -- 执行流程
传统JDBC开发 代码样例 import java.sql.*;public class JdbcExample {public static void main(String[] args) {Connection conn DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");// 创建…...
springboot背诵
1、springboot简介 2、spring注解 Bean: Configuration: Component: Controller: Service: Repository: ComponentScan: Import: Conditional: ConfigurationProperties&…...
WebGL: 几个入门例子
本文罗列几个WebGL入门例子,用于帮助WebGL学习。 例子1:绘制三角形 <!DOCTYPE HTML> <html loang"en"><head><title>Triangle</title><meta charset"utf-8"><script>var gl;var canvas…...
App Cleaner Uninstaller for Mac 苹果电脑软件卸载工具
App Cleaner & Uninstaller 是一款非常有用的 Mac 应用程序清理和卸载工具。它可以彻底地清理系统中的应用程序、扩展和残留文件,以释放磁盘空间并优化系统性能。 此外,它还提供了磁盘空间监控和智能清理建议等功能,使用户可以轻松地管理…...
基于Yolov2深度学习网络的车辆检测算法matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1. 卷积神经网络(CNN) 4.2. YOLOv2 网络 4.3. 实现过程 4.4. 应用领域 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022A 3.部分核心…...
Java的I/O类库- NIO
Java NIO(New I/O)是Java平台提供的一种用于非阻塞I/O操作的API。它引入了一组新的Java类,用于实现高性能的、非阻塞的I/O操作,以替代传统的阻塞式I/O(IO Blocking)模型。Java NIO的核心是基于Channel&…...
【ASP.NET MVC】使用动软(三)(11)
一、问题 上文中提到,动软提供了数据库的基本操作功能,但是往往需要添加新的功能来解决实际问题,比如GetModel,通过id去查对象: 这个功能就需要进行改进:往往程序中获取的是实体的其他属性,比如…...
基于MATLAB长时间序列遥感数据植被物候提取与分析
MATLAB MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。 [1] MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂&a…...
K8S deployment 重启的三种方法
一般重启deployment,常规操作是删掉对应的pod, 但如果有多个副本集的话,一个个删很麻烦。 除了删除pod,还可以: 方案一: 加上环境变量 kubectl patch deploy <deployment-name> -p {"spec":{"…...
解决Linux下PyCharm无法新建文件
一、问题描述 如图,在Ubuntu Linux系统中使用pycharm管理项目时,提示无法新建.py源文件: 二、问题解决 将问题定性为文件夹(目录)权限问题,在终端中打开项目文件夹的上级目录,将整个项目目录的…...
规则引擎技术解决方案
1 概述 1.1 规则引擎的背景 业务系统在应用过程中,常常包含着要处理“复杂、多变”的部分,这部分往往是“业务规则”或者是“数据的处理逻辑”。因此这部分的动态规则的问题,往往需要可配置,并对系统性能和热部署有一定的要求。从…...
2023奇安信天眼设备--面试题
1.在天眼分析平台网络协议中sip、dip、sport、dport字段表示的含义是什么? sip 源IP、dip 目的IP、sport 源端口、dport 目的端口 2.在天眼分析平台DNS协议中dns type字段表示的含义是? dns type表示DNS请求类型 0代表DNS请求,1代表DNS响应 3.dns_typ…...
HoYo-Glyphs:米哈游游戏字体库终极指南,11款开源架空文字字体让你的创作瞬间拥有游戏世界氛围
HoYo-Glyphs:米哈游游戏字体库终极指南,11款开源架空文字字体让你的创作瞬间拥有游戏世界氛围 【免费下载链接】HoYo-Glyphs Constructed scripts by HoYoverse 米哈游的架空文字 项目地址: https://gitcode.com/gh_mirrors/ho/HoYo-Glyphs 你是否…...
写程序笔记本封面镂空,内页图案透出,输出:文创笔记本溢价高。
📝 项目概述:Laser-Cut Windowed Notebook CoverSlogan: 代码定义美学,光影穿透纸背;打造溢价翻倍的文创爆品。一、 实际应用场景描述 (Context & Scenario)* 场景:文创市集、独立书店、礼品店。消费者面对琳琅满目…...
【拒绝延毕】2026论文降AI求生指南:硬核排雷10款工具,手把手教你洗掉“AI味”
毕业季定稿最让人头疼的不是重复率,而是迟迟降不下来的AI疑似度。去年我自己改稿经常改到凌晨,一查还是飘红,这才意识到纯手工降低ai率根本行不通。 为了稳妥达标,我集中研究了市面上常见的论文降ai方法,整理出这份干…...
为啥学C语言绕不开指针?懂它封神,不懂直接劝退,真相太扎心
一、学C的人,一半栽在指针上,一半靠它拿高薪 无数程序员入门C语言时,都有过同一个崩溃瞬间:对着指针的*和&抓耳挠腮,明明看书上写的是“存储内存地址的变量”,可实操起来却频频报错,甚至直接…...
3步打造高效多平台直播:OBS Multi RTMP插件完整解决方案
3步打造高效多平台直播:OBS Multi RTMP插件完整解决方案 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 想要突破单一平台限制,实现多平台同步直播却苦于操作复杂…...
GLM-4.1V-9B-Base与Proteus联调:可视化电路仿真结果分析
GLM-4.1V-9B-Base与Proteus联调:可视化电路仿真结果分析 1. 硬件调试的新思路 在电子工程领域,电路调试一直是个耗时费力的过程。工程师们需要盯着示波器上的波形,手动比对预期与实际结果,这个过程不仅容易出错,还特…...
Kubernetes集群的网络性能优化
Kubernetes集群的网络性能优化 🔥 硬核开场 各位技术老铁,今天咱们聊聊Kubernetes集群的网络性能优化。别跟我扯那些理论,直接上干货!在云原生时代,网络性能是影响Kubernetes集群整体性能的关键因素。不搞网络性能优化…...
春联生成模型效果展示:‘健康‘、‘奋斗‘主题对联,意境优美接地气
春联生成模型效果展示:健康、奋斗主题对联,意境优美接地气 春节将至,家家户户都开始张罗贴春联。一副好春联不仅要对仗工整、平仄合规,更要能表达出对新年的美好祝愿。今天我要为大家展示一款基于达摩院PALM大模型的春联生成模型…...
工业水质快检试剂盒怎么选?这家国产品牌值得关注
在工业水处理与环境监测领域,快速、准确的水质检测是保障生产安全和环保合规的关键环节。传统实验室检测流程复杂、耗时长,难以满足现场快速筛查和应急决策需求。面对这一行业痛点,水质快检试剂盒凭借操作简便、响应迅速的特点,正…...
Clawdbot企业集成:飞书机器人深度定制开发
Clawdbot企业集成:飞书机器人深度定制开发 企业级AI助手如何无缝融入日常工作流?飞书机器人正成为智能办公的新入口 在现代企业环境中,AI助手与办公平台的深度集成已经成为提升效率的关键。Clawdbot作为企业级AI助手平台,与飞书的…...
