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

【LeetCode-中等题】79. 单词搜索

文章目录

    • 题目
    • 方法一:递归 +回溯

题目

在这里插入图片描述

方法一:递归 +回溯

  1. 需要一个标记数组 来标志格子字符是否被使用过了
  2. 先找到word 的第一个字符在表格中的位置,再开始递归
  3. 递归的结束条件是如果word递归到了最后一个字符了,说明能在矩阵中找到单词
  4. 剪枝条件 就是如果已经找到单词了 res = true 了 后面就不需要递归了,还有如果下标越界、当前格子被使用过了、 或者当前格子字符不和当前wordIdenx相同 都直接剪枝 不往下递归了
  5. 并且在对当前位置进行四个方向递归的时候,需要将该位置标志数组置为true代表使用过了
  6. 在将四个方向递归完了,要把当前位置的标志位修改回来,回溯
class Solution {boolean res = false;//结果标志位int r = 0;//全局 矩阵长宽int c = 0;boolean[][] usered = null;public boolean exist(char[][] board, String word) {r = board.length;c = board[0].length;// 同一个单元格内的字母不允许被重复使用!!!// 标识字母是否被使用usered = new boolean[r][c];char[] chars = word.toCharArray();// 将字符串转换为字符数组//在矩阵中找到word第一个字符再进行递归for(int i = 0 ; i < r ; i++)for(int j = 0 ; j < c ; j++){          if(board[i][j] == chars[0]) backtrack(board,i,j,chars,0,usered);  // 0代表word第一个字符 usered 标记已经使用过的表格}return res;}public void backtrack(char[][] board,int i,int j,char[] chars,int wordIndex,boolean[][] usered){if(res) return;// 已找到答案直接结束if(wordIndex == chars.length) {res = true ; return;}// 越界 或者不相等// i 和 j 要在矩阵范围内   并且标志位要是fasle  并且当前矩阵格子的字符要是 word当前的字符相等  才会往下递归 否则returnif(i < 0 || j < 0 || i > r-1 || j > c-1 || usered[i][j] || board[i][j] != chars[wordIndex]) return;// 往下递归  说明符合条件// 标记已经被使用usered[i][j] = true;//四个方向递归backtrack(board,i-1,j,chars,wordIndex+1,usered); backtrack(board,i+1,j,chars,wordIndex+1,usered); backtrack(board,i,j-1,chars,wordIndex+1,usered); backtrack(board,i,j+1,chars,wordIndex+1,usered); // 回溯恢复状态usered[i][j] = false;}}

相关文章:

【LeetCode-中等题】79. 单词搜索

文章目录 题目方法一&#xff1a;递归 回溯 题目 方法一&#xff1a;递归 回溯 需要一个标记数组 来标志格子字符是否被使用过了先找到word 的第一个字符在表格中的位置&#xff0c;再开始递归递归的结束条件是如果word递归到了最后一个字符了&#xff0c;说明能在矩阵中找到单…...

揭秘iPhone 15 Pro Max:苹果如何战胜三星

三星Galaxy S23 Ultra在我们的最佳拍照手机排行榜上名列前茅有几个原因&#xff0c;但iPhone 15 Pro Max正在努力夺回榜首——假设它有一个特定的功能。别误会我的意思&#xff0c;苹果一直在追赶三星&#xff0c;因为它的iPhone 14 Pro和14 Pro Max都表现强劲。尽管如此&#…...

分布式秒杀方案--java

前提&#xff1a;先把商品详情和秒杀商品缓存redis中&#xff0c;减少对数据库的访问&#xff08;可使用定时任务&#xff09; 秒杀商品无非就是那几步&#xff08;前面还可能会有一些判断&#xff0c;如用户是否登录&#xff0c;一人一单&#xff0c;秒杀时间验证等&#xff0…...

高频golang面试题:简单聊聊内存逃逸?

文章目录 问题怎么答举例 问题 知道golang的内存逃逸吗&#xff1f;什么情况下会发生内存逃逸&#xff1f; 怎么答 golang程序变量会携带有一组校验数据&#xff0c;用来证明它的整个生命周期是否在运行时完全可知。如果变量通过了这些校验&#xff0c;它就可以在栈上分配。…...

【2023年数学建模国赛C题解题思路】

第一问 要求分析分析蔬菜各品类及单品销售量的分布规律及相互关系。该问题可以拆分成三个角度进行剖析。 1&#xff09;各种类蔬菜的销售量分布、蔬菜种类与销售量之间的关系&#xff1b;2&#xff09;各种类蔬菜的销售量的月份分布、各种类蔬菜销售量与月份之间的相关关系&a…...

Jenkins+Allure+Pytest的持续集成

一、配置 allure 环境变量 1、下载 allure是一个命令行工具&#xff0c;可以去 github 下载最新版&#xff1a;https://github.com/allure-framework/allure2/releases 2、解压到本地 3、配置环境变量 复制路径如&#xff1a;F:\allure-2.13.7\bin 环境变量、Path、添加 F:\a…...

yo!这里是进程控制

目录 前言 进程创建 fork()函数 写时拷贝 进程终止 退出场景 退出方法 进程等待 等待原因 等待方法 1.wait函数 2.waitpid函数 等待结果&#xff08;status介绍&#xff09; 进程替换 替换原理 替换函数 进程替换例子 shell简易实现 后记 前言 学习完操作…...

多线程快速入门

线程与进程区别 每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合&#xff0c;或者是程序的特殊段&#xff0c;它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程&#xff0c;它负责在单个程序里…...

Redis 7 第七讲 哨兵模式(sentinal)架构篇

哨兵模式 哨兵巡查监控后台master主机是否故障,如果出现故障根据投票时自动将某一个从库转换成新的主库,继续对外服务。 作用 1. 监控redis运行状态,包括master和slave 2. 当master down机,能自动将salve切换成新的master 应用场景 主从监控监控主从redis库运行的状态…...

laravel框架系列(一),Dcat Admin 安装

介绍 Laravel 是一个流行的 PHP 开发框架&#xff0c;它提供了一套简洁、优雅的语法和丰富的功能&#xff0c;用于快速构建高质量的 Web 应用程序。 以下是 Laravel 的一些主要特点和功能&#xff1a; MVC 架构&#xff1a;Laravel 使用经典的模型-视图-控制器&#xff08;MV…...

Linux:工具(vim,gcc/g++,make/Makefile,yum,git,gdb)

目录 ---工具功能 1. vim 1.1 vim的模式 1.2 vim常见指令 2. gcc/g 2.1 预备知识 2.2 gcc的使用 3.make,Makefile make.Makefile的使用 4.yum --yum三板斧 5.git --git三板斧 --Linux下提交代码到远程仓库 6.gdb 6.1 gdb的常用指令 学习目标&#xff1a; 1.知道…...

小节1:Python字符串打印

1、字符串拼接 用可以将两个字符串拼接成一个字符串 print("你好 " "这是一串代码") 输出&#xff1a; 2、单双引号转义 当打印的字符串中带有引号或双引号时&#xff0c;使用\或\"表示 print("He said \"Let\s go!\"") 输…...

2023国赛C题解题思路代码及图表:蔬菜类商品的自动定价与补货决策

2023国赛C题&#xff1a;蔬菜类商品的自动定价与补货决策 C题表面上看上去似乎很简单&#xff0c;实际上23题非常的难&#xff0c;编程难度非常的大&#xff0c;第二题它是一个典型的动态规划加仿真题目&#xff0c;我们首先要计算出销量与销售价格&#xff0c;批发价格之间的…...

数据可视化工具中的显眼包:奥威BI自带方案上阵

根据经验来看&#xff0c;BI数据可视化分析项目是由BI数据可视化工具和数据分析方案两大部分共同组成&#xff0c;且大多数时候方案都需从零开始&#xff0c;反复调整&#xff0c;会耗费大量时间精力成本。而奥威BI数据可视化工具别具匠心&#xff0c;将17年经验凝聚成标准化、…...

LeetCode算法心得——生成特殊数字的最少操作(贪心找规律)

大家好&#xff0c;我是晴天学长&#xff0c;这是一个简单贪心思维技巧题&#xff0c;主要考察的还是临场发挥的能力。需要的小伙伴可以关注支持一下哦&#xff01;后续会继续更新的。 2) .算法思路 0 00 50 25 75 末尾是这两个的才能被45整除 思路&#xff1a;分别找&#x…...

【2023高教社杯】B题 多波束测线问题 问题分析、数学模型及参考文献

【2023高教社杯】B题 多波束测线问题 问题分析、数学模型及参考文献 1 题目 1.1 问题背景 多波束测深系统是利用声波在水中的传播特性来测量水体深度的技术&#xff0c;是在单波束测深的基础上发展起来的&#xff0c;该系统在与航迹垂直的平面内一次能发射出数十个乃至上百个…...

如何处理异步编程中的回调地狱问题?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 解决回调地狱问题的方法⭐使用 Promise⭐使用 async/await⭐ 使用回调函数库⭐模块化⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端…...

什么是Lambda表达式?

Lambda表达式是Java 8引入的一个重要特性&#xff0c;用于简化函数式编程中的匿名函数的定义和使用。它可以被视为一种轻量级的匿名函数&#xff0c;可以作为参数传递给方法或存储在变量中。 Lambda表达式的语法形式如下&#xff1a; (parameters) -> expression 或 (para…...

公式trick备忘录

增大不同class feature之间的距离用hinge loss 相关&#xff0c; similarity learning, svm https://www.youtube.com/watch?vQtAYgtBnhws https://www.youtube.com/watch?vbM4_AstaBZo&t286s...

向量数据库Milvus Cloud核心组件再升级,主打就是一个低延迟、高准确度

支持 ScaNN 索引 Faiss 实现的 ScaNN,又名 FastScan,使用更小的 PQ 编码和相应的指令集可以更为友好地访问 CPU 寄存器,从而使其拥有优秀的索引性能。该索引在 Cohere 数据集,Recall 约 95% 的时候,Milvus 使用 Knowhere 2.x 版本端到端的 QPS 是 IVF_FLAT 的 7 倍,HN…...

【更新 v 2.7.5 版本】桌面版 Open Claw 本地一键部署指南

✨ 核心亮点 零代码门槛&#xff5c;全程可视化&#xff5c;无需手动配环境&#xff5c;内置所有依赖&#xff5c;28 万 Tokens 额度 &#x1f517; 下载地址 https://xiake.yun/api/download/package/16?promoCodeIV8E496E2F7A &#x1f4dd; 前言 开源圈热门的「数字员…...

终极指南:3分钟完成Figma中文界面汉化,设计师必备的完整翻译插件

终极指南&#xff1a;3分钟完成Figma中文界面汉化&#xff0c;设计师必备的完整翻译插件 【免费下载链接】figmaCN 中文 Figma 插件&#xff0c;设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面而烦恼吗&#xff1f;作为…...

3分钟掌握智慧职教刷课脚本:全平台自动学习解决方案

3分钟掌握智慧职教刷课脚本&#xff1a;全平台自动学习解决方案 【免费下载链接】auto-play-course 简单好用的刷课脚本[支持平台:职教云,智慧职教,资源库] 项目地址: https://gitcode.com/gh_mirrors/hc/auto-play-course 还在为重复的网课学习任务烦恼吗&#xff1f;智…...

避开这些坑,你的蓝桥杯单片机程序也能拿高分:EEPROM存储与电压比较逻辑详解

蓝桥杯单片机高分秘籍&#xff1a;EEPROM存储与电压比较逻辑的深度优化 在蓝桥杯单片机竞赛中&#xff0c;能够完成基本功能只是及格线&#xff0c;真正决定成绩高低的是对细节的掌控和边界条件的处理。许多参赛者在EEPROM数据存储和复杂电压比较逻辑这两个关键环节频频失分&am…...

智能消费记账|基于SSM+vue的大学生智能消费记账系统(源码+数据库+文档)

智能消费记账系统 目录 基于SSMvue的大学生智能消费记账系统 一、前言 二、系统设计 三、系统功能设计 1 用户列表 2 预算信息管理 3 预算类型管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#x…...

除了STM32,你的CubeMX项目还能一键迁移到哪些国产MCU?APM32F030实测与选型思考

STM32生态迁移实战&#xff1a;从CubeMX到国产MCU的全链路决策指南 当ST官方涨价函在技术群里刷屏时&#xff0c;我正用CubeMX给APM32F030生成工程模板。屏幕上的进度条流畅运行&#xff0c;就像三年前操作STM32F030时一样——这个细节突然让我意识到&#xff1a;国产MCU的兼容…...

如何5分钟快速上手Mayo:新手入门完全教程

如何5分钟快速上手Mayo&#xff1a;新手入门完全教程 【免费下载链接】mayo 3D CAD viewer and converter based on Qt OpenCascade 项目地址: https://gitcode.com/gh_mirrors/ma/mayo Mayo是一款基于Qt和OpenCascade开发的免费开源3D CAD查看器和转换器&#xff0c;支…...

百考通AI:以“需求导向+结构化生成”为核心,让调研工作更高效省心

在学术研究、市场调研、用户反馈收集等场景中&#xff0c;一份逻辑清晰、针对性强的问卷是获取有效数据的核心前提&#xff0c;却也让无数从业者倍感头疼&#xff1a;从明确调研目的到设计问题逻辑&#xff0c;从匹配目标受众到控制问卷长度&#xff0c;繁琐的流程常常耗费大量…...

Modon与Montage Hotels Resorts合作在埃及拉斯伊尔赫克马引入超豪华酒店品牌

Montage Ras El Hekma&#xff08;拉斯伊尔赫克马蒙太奇酒店&#xff09;将在该地中海景区推出首批对外开放销售的品牌住宅&#xff0c;也是该地区的首个Montage&#xff08;蒙太奇&#xff09;度假村 总部位于阿布扎比的Modon Holding与Montage Hotels & Resorts&#xf…...

智慧树刷课插件:如何用自动化工具解放你的学习时间

智慧树刷课插件&#xff1a;如何用自动化工具解放你的学习时间 【免费下载链接】zhihuishu 智慧树刷课插件&#xff0c;自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 你是否曾经花费大量时间在智慧树平台上手动点击视频、处…...