79 单词搜索

题目

给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。

单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。

示例

输入:board = [[“A”,“B”,“C”,“E”],[“S”,“F”,“C”,“S”],[“A”,“D”,“E”,“E”]], word = “ABCCED”
输出:true
在这里插入图片描述

解析

首先这道题是一个二维的数组进行回溯,而且返回结果只是判断true or false,那么完全就不需要之前题目那么复杂存路径,就用一个变量来判断是否存在即可,而且只要存在了,就直接一层层返回。
另外这道题相当于从二维数组的每个位置开始,进行dfs,为了方便可以都将边界条件写到dfs函数中来进行退出;同时标记不能重复走的位置也可以直接修改原数组再回溯后改回去,不用新开二维数组。

func exist(board [][]byte, word string) bool {// 这道题的结果是判断是否存在,用一个遍历来存,满足则直接返回found := falsem, n := len(board), len(board[0])var dfs func(i, j, k int)dfs = func(i, j, k int) {// 已经找到,直接返回if found {return}// 超出索引范围if i < 0 || j < 0 || i >= m || j >= n {return}// 之前走过这个位置了,不能再走if board[i][j] == '*' { // 也可以新起一个二维数组来存这个改动return}// 元素不相等if board[i][j] != word[k] { // 比较的递归中的某个字符return}// 走到这代表元素相等,再判断长度if k == len(word)-1 {found = truereturn}// 到这里表示还没找到,但是目前还是符合预期的,dfs四个方向继续找tmp := board[i][j]board[i][j] = '*'dfs(i-1, j, k+1)dfs(i+1, j, k+1)dfs(i, j-1, k+1)dfs(i, j+1, k+1)board[i][j] = tmp}for i := 0; i < m; i++ {for j := 0; j < n; j++ {dfs(i, j, 0)}}return found
}

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

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

相关文章

Smail语句如何使用判断语句跳过验证卡密界面?谈谈思路

&#x1f3c6;本文收录于《CSDN问答解惑》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&…

从零开学C++:入门

引言&#xff1a;经过C语言和数据结构等编程知识的洗礼&#xff0c;到了暑假&#xff0c;我们就将要踏上C编程语言的学习了&#xff0c;C的学习难度比python等其他语言的学习难度更大&#xff0c;但是我们已经熟练地掌握了C语言的知识&#xff0c;相信学习起来C应该还是会简单许…

【以史为镜、以史明志,知史爱党、知史爱国】中华上下五千年之-隋朝

隋朝&#xff08;581年-619年&#xff09;是中国历史上承南北朝、下启唐朝的大一统王朝。 581年&#xff0c;杨坚定国号为“隋”&#xff0c;定都大兴城&#xff0c;随后南下灭陈朝&#xff0c;统一中国&#xff0c;结束了自西晋末年以来长达近300年的分裂局面。 杨坚&#xff…

【中项第三版】系统集成项目管理工程师 | 第 4 章 信息系统架构⑤ | 4.8 - 4.9

前言 第4章对应的内容选择题和案例分析都会进行考查&#xff0c;这一章节属于技术相关的内容&#xff0c;学习要以教材为准。本章分值预计在4-5分。 目录 4.8 云原生架构 4.8.1 发展概述 4.8.2 架构定义 4.8.3 基本原则 4.8.4 常用架构模式 4.8.5 云原生案例 4.9 本章…

全新TTT架构:挑战Transformer和Mamba的霸主地位

&#x1f989; AI新闻 &#x1f680; 全新TTT架构&#xff1a;挑战Transformer和Mamba的霸主地位 摘要&#xff1a;斯坦福、UCSD、UC伯克利和Meta研究人员提出了一种全新架构TTT层&#xff0c;取代RNN的隐藏状态&#xff0c;通过梯度下降压缩上下文。TTT层直接替代注意力机制…

基于YOLOv8深度学习的CT扫描图像肾结石智能检测系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

Python面试宝典第9题:买卖股票

题目 给定一个整型数组&#xff0c;它的第i个元素是一支给定股票第i天的价格。如果最多只允许完成一笔交易&#xff08;即买入和卖出一支股票一次&#xff09;&#xff0c;设计一个算法来计算你所能获取的最大利润。注意&#xff1a;你不能在买入股票前卖出股票。 示例 1&#…

内网对抗-基石框架篇单域架构域内应用控制成员组成用户策略信息收集环境搭建

知识点&#xff1a; 1、基石框架篇-单域架构-权限控制-用户和网络 2、基石框架篇-单域架构-环境搭建-准备和加入 3、基石框架篇-单域架构-信息收集-手工和工具1、工作组(局域网) 将不同的计算机按照功能分别列入不同的工作组。想要访问某个部门的资源&#xff0c;只要在“网络…

如何在 C 语言中进行选择排序?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01; &#x1f4d9;C 语言百万年薪修炼课程 通俗易懂&#xff0c;深入浅出&#xff0c;匠心打磨&#xff0c;死磕细节&#xff0c;6年迭代&#xff0c;看过的人都说好。 文章目…

2024浙江外国语学院汉语桥线上项目 “在杭州,看见更好的中国”开班

7月9日上午&#xff0c;由教育部中外语言交流合作中心主办、浙江外国语学院国际商学院承办的2024汉语桥“在杭州&#xff0c;看见更好的中国”线上项目正式启动。项目负责人何骅老师及汉语桥教师团队&#xff0c;与来自越南、缅甸、日本、俄罗斯的100名学员相聚云端&#xff0c…

【安全设备】Web应用防火墙

一、什么是Web应用防火墙 Web应用程序防火墙&#xff08;Web Application Firewall&#xff09;的缩写是WAF&#xff0c;用于保护Web应用程序免受各种恶意攻击和漏洞利用。WAF通过监控和过滤进出Web应用程序的HTTP/HTTPS流量来工作。它位于Web应用程序和用户之间&#xff0c;分…

完美解决windows开机时,系统提示此windows副本不是正版的正确解决方法,亲测有效!!!

完美解决windows开机时&#xff0c;系统提示此windows副本不是正版的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 亲测有效 完美解决windows开机时&#xff0c;系统提示此windows副本不是正版的正确解决方法&#xff0c;亲测有效&#xff01;&#…

09-《悬铃花》

悬 铃 花 悬铃花&#xff0c;拉丁学名&#xff08;Malvaviscus arboreus Cav.&#xff09;&#xff0c;属常绿小灌木。外型略似朱槿&#xff0c;高30-60cm&#xff0c;鲜红色花朵&#xff0c;较为奇特&#xff0c;花期终年、花量多。悬铃花性强健&#xff0c;喜高温多湿和阳光充…

Mac电脑利用 IDEA自带 Maven配置环境变量

平常也是用 IDEA&#xff0c;有些配置环境变量总要我安装Maven&#xff0c;但是 IDEA 自己已经有了 Maven&#xff0c;但是没有环境变量&#xff0c;能否配置呢&#xff1f;答案是 ok 的。 目录 为什么需要配置环境变量常规配置Maven环境变量下载和安装Maven配置MAVEN_HOME和…

处理和执行外部命令subprocess.run()

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 处理和执行外部命令 subprocess.run() [太阳]选择题 subprocess.run()的返回值中&#xff0c;哪个属性表示执行是否成功&#xff1f; import subprocess res subprocess.run([python, hell…

【代码随想录】【算法训练营】【第63天】 [卡码53]寻宝

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 63&#xff0c;周二&#xff0c;ding~ 题目详情 [卡码53] 寻宝 题目描述 卡码53 寻宝 解题思路 前提&#xff1a; 思路&#xff1a; 重点&#xff1a; 代码实现 C语言 prim算法 kruskal…

枚举类 (enum)

目录 一、为什么要有枚举类&#xff1f; 二、枚举的简介 三、自定义枚举类 四、使用enum关键字 五、注意事项 一、为什么要有枚举类&#xff1f; 假如我们有这样的一个需求&#xff1a;设计季节类&#xff0c;并创建对象。 我们就需要以下操作&#xff0c;创建Season类&…

基于vue的地图特效(飞线和标注)

这段代码的主要功能是在页面加载完成后&#xff0c;初始化一个 echarts 地图图表&#xff0c;并配置了相关的地理数据、散点数据、线条数据以及样式效果&#xff0c;最后在指定的 div 元素中进行展示。 需要再vue中的框架实现&#xff0c;不能单独直接运行。 标注 type: effe…

案例|180套设备24小时监测,守护某油气管线安全

油气管道跨越工程是我国重要的能源基础设施&#xff0c;也是油气上下游衔接协调发展的关键环节&#xff0c;还是我国现代能源体系和现代综合交通运输体系的重要组成部分。守护能源安全大动脉&#xff0c;筑牢油气管网基础设施安全具有重要意义。 一、项目背景 某油气管线是我国…

802.11漫游流程简单解析与笔记_Part2_05_wpa_supplicant如何通过nl80211控制内核开始关联

最近在进行和802.11漫游有关的工作&#xff0c;需要对wpa_supplicant认证流程和漫游过程有更多的了解&#xff0c;所以通过阅读论文等方式&#xff0c;记录整理漫游相关知识。Part1将记录802.11漫游的基本流程、802.11R的基本流程、与认证和漫游都有关的三层秘钥基础。Part1将包…