矩阵中的路径(dfs)-acwing

题目

23. 矩阵中的路径 - AcWing题库

代码

class Solution {
public://以每一个坐标作为dfs起点bool hasPath(vector<vector<char>>& matrix, string str) {for (int i = 0; i < matrix.size(); i ++ )for (int j = 0; j < matrix[i].size(); j ++ )if (dfs(matrix, str, 0, i, j))return true;return false;}//每一层搜索是否符合,一直搜索到底//u是递归深度bool dfs(vector<vector<char>> &matrix, string &str, int u, int x, int y) {if (matrix[x][y] != str[u]) return false; // 到该层不符合if (u == str.size() - 1) return true; //成功搜搜底,先判断符不符合//符合之后继续偏移int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};//回退标记和存储char t = matrix[x][y];matrix[x][y] = '*'; // 已搜索for (int i = 0; i < 4; i ++ ) { // 每个点的四个搜索方向int a = x + dx[i], b = y + dy[i];if (a >= 0 && a < matrix.size() && b >= 0 && b < matrix[a].size()) { //偏移不出界if (dfs(matrix, str, u + 1, a, b)) return true; // 符合偏移条件开始搜索}}matrix[x][y] = t;//不符合回退return false;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/10492.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

欢迎 Stable Diffusion 3.5 Large 加入 Diffusers

作为Stable Diffusion 3的改进版本&#xff0c;Stable Diffusion 3.5 如今已在 Hugging Face Hub 中可用&#xff0c;并可以直接使用 &#x1f9e8; Diffusers 中的代码运行。 https://hf.co/blog/sd3 本次发布包含两套模型参数: https://hf.co/collections/stabilityai/stable…

Docker入门系列——DockerFile的使用

前面了解了Docker的基本概念&#xff0c;今天来认识一下DockerFile。 Dockerfile 是一个文本文件&#xff0c;包含一系列指令来组装 Docker 镜像。每个指令执行一个特定动作&#xff0c;例如安装包、复制文件或定义启动命令。正确使用 Dockerfile 指令对于构建高效容器至关重要…

2-146 基于matlab的双摆杆系统建模分析

基于matlab的双摆杆系统建模分析。连接方式为铰接&#xff0c;两杆均视为均质杆&#xff0c;动态输出摆杆末端轨迹。程序已调通&#xff0c;可直接运行。 下载源程序请点链接&#xff1a;2-146 基于matlab的双摆杆系统建模分析

基于java+SpringBoot+Vue的美发门店管理系统设计与实现

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven mysql5.7或8.0等等组成&#x…

基于vue框架的的楼盘销售管理系统6n60a(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 用户,房源类型,员工,房源信息,购房预订,购房合同 开题报告内容 基于Vue框架的楼盘销售管理系统开题报告 一、研究背景 随着房地产市场的蓬勃发展&#xff0c;楼盘销售行业的竞争日益激烈。传统的销售管理方式依赖于人工记录和纸质文档&#xff0c;效率低下…

值得一看的小模型技术全面总结及RAG文档处理及切分小模型工具

、 本文还是来看看RAG&#xff0c;不过是从另一个角度&#xff0c;从小模型(其实这个小不太好说&#xff0c;7B或者以下&#xff1f;)角度&#xff1b; 因此&#xff0c;讲两件事&#xff0c;一个是回顾下小模型&#xff0c;推荐一个写的很好的小模型进展技术总结综述&#xf…

大模型好书案例——《BERT基础教程:Transformer大模型实战》(附PDF)

《BERT基础教程&#xff1a;Transformer大模型实战》是一本关于自然语言处理&#xff08;NLP&#xff09;的书籍&#xff0c;专注于谷歌公司开发的BERT模型。这本书由印度作者苏达哈尔桑拉维昌迪兰&#xff08;Sudharsan Ravichandiran&#xff09;撰写&#xff0c;周参翻译。 …

关于Markdown的一点疑问,为什么很多人说markdown比word好用?

markdown和word压根不是一类工具&#xff0c;不存在谁比谁好&#xff0c;只是应用场景不一样。 你写博客、写readme肯定得markdown&#xff0c;但写合同、写简历肯定word更合适。 markdown和word类似邮箱和微信的关系&#xff0c;这两者都可以通信&#xff0c;但微信因为功能…

ASR 点屏

ASR翱捷科技 ASR kernel 5.10 android14 ASR EVB平台 以gc7202 jd9365这两块屏为例 新旧DTBO点屏配置是有区别的,主要差异是体现在 asr\kernel\u-boot\board\asr\dove\dovc.c这个文件上 旧DTBO: 新DTBO: 目前我们的代码已经合入新的DTBO 以前在没有合入asr新的DTBO时点亮…

Ubuntu24.04网络异常与应对方案记录

PS: 参加过408改卷的ZJU ghsongzju.edu.cn 开启嘲讽: 你们知道408有多简单吗&#xff0c;操作系统真实水平自己知道就行&#xff5e;&#xff5e; Requested credits of master in UWSC30&#xff0c;in ZJU24&#xff0c;domestic master is too simple dmesg dmesg 是一个用…

【Zynq FPGA】基于 Zynq FPGA 的雷龙 SD NAND 测试

对于芯片正常读写的测试结果&#xff0c;还是很让人满意的&#xff0c;芯片的价格也很合理。并且LGA-8封装更适合无卡槽的嵌入式开发板设计&#xff0c;在一定的应用领域有着简化硬件设计、减小硬件面积的功能。贴上测试工程的链接&#xff0c;还迎复现实验: https://gitee.com…

【PyTorch][chapter31][transformer-5] MQA,CQA, GQA

前言&#xff1a; Trans 翻译 《Variants of Multi-head attention: Multi-query (MQA) and Grouped-query attention (GQA) 为例兼顾性能,和模型的效率Google 又陆续提出了三种注意力架构. 当一个模型训练过度时&#xff0c;它会过度拟合或记忆训练数据&#xff0c;从而降低…

数据结构之排序--选择排序详解

选择排序 每一次从待排序的数据元素中选出最小&#xff08;或最大&#xff09;的一个元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部待排序的数据元素排完 。 直接选择排序: 在元素集合 array[i]--array[n-1] 中选择关键码最大 ( 小 ) 的数据元素 若它不是这组元…

spring组件介绍

1. Spring Core&#xff08;Spring核心&#xff09;&#xff1a; • BeanFactory&#xff1a;Spring IoC容器的基础接口&#xff0c;提供了配置框架和基本的功能&#xff0c;用于管理任何类型的对象。 • ApplicationContext&#xff1a;BeanFactory的子接口&#xff0c;提供了…

软件测试基础:单元测试与集成测试

单元测试的重要性 单元测试是软件开发过程中的必要步骤。它通过针对软件的最小可测试单元进行测试&#xff0c;可以及早发现代码中的逻辑错误和缺陷。根据统计数据显示&#xff0c;单元测试可以在软件开发初期就发现约70%的错误&#xff0c;从而减少了后期修改的成本和时间消耗…

sql专题 之 常用命令

文章目录 查询基础语法查询全表查询选择查询&#xff1a;常量和运算&#xff1a; 条件查询where运算符&#xff1a;、 !、<、>空值&#xff1a;null模糊查询&#xff1a;like逻辑运算&#xff1a;and or not 去重&#xff1a;distinct排序&#xff1a;order by截断和偏移…

LocalSend:开源跨平台文件传输工具,让设备互通无阻

在现代社会中&#xff0c;文件共享和设备之间的互联互通已经成为日常生活中不可或缺的一部分。无论是在工作中分享文档&#xff0c;还是在朋友间传输照片和视频&#xff0c;快速而便捷的文件传输工具都显得尤为重要。通常情况下&#xff0c;我们依赖互联网或蓝牙进行文件传输&a…

解决 Vue3、Vite 和 TypeScript 开发环境下跨域的问题,实现前后端数据传递

引言 本文介绍如何在开发环境下解决 Vite 前端&#xff08;端口 3000&#xff09;和后端&#xff08;端口 80&#xff09;之间的跨域问题&#xff1a; 在开发环境中&#xff0c;前端使用的 Vite 端口与后端端口不一致&#xff0c;会产生跨域错误提示&#xff1a; Access to X…

C/C++/PYTHON 改变 console terminal cmd 字体输出颜色

C代码 #include <stdio.h>// 定义一些常用颜色的转义序列 #define RED "\x1b[31m" #define GREEN "\x1b[32m" #define YELLOW "\x1b[33m" #define BLUE "\x1b[34m" #define RESET "\x1b[0m"int main() {// 在控制台输…

android studio 更改gradle版本方法(备忘)

如果出现类似以下&#xff1a; Your build is currently configured to use Java 17.0.11 and Gradle 6.1.1. 或者类似&#xff1a; Failed to calculate the value of task ‘:app:compileDebugJavaWithJavac‘ property ‘options.generatedSo 消息时需要修改gradle版本&…