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

LeetCode 单词搜索II题解

LeetCode 单词搜索II题解题目描述给定一个二维字符网格和一个字符串数组找出所有在网格中出现的单词。示例输入board [[o,a,a,n],[e,t,a,e],[i,h,k,r],[i,f,l,v]],words [oath,pea,eat,rain]输出[eat,oath]解题思路方法字典树 DFS思路首先将所有单词插入字典树。然后使用 DFS 遍历网格对于每个单元格从字典树中查找以该单元格字符开头的单词。如果找到了一个单词将其加入结果列表并标记为已访问。复杂度分析时间复杂度O(m * n * 4^L)。空间复杂度O(L)。代码实现class TrieNode: def __init__(self): self.children {} self.word None class Trie: def __init__(self): self.root TrieNode() def insert(self, word): node self.root for char in word: if char not in node.children: node.children[char] TrieNode() node node.children[char] node.word word def find_words(board, words): trie Trie() for word in words: trie.insert(word) result [] m, n len(board), len(board[0]) visited [[False] * n for _ in range(m)] def dfs(i, j, node): if visited[i][j]: return char board[i][j] if char not in node.children: return node node.children[char] if node.word: result.append(node.word) node.word None visited[i][j] True for di, dj in [(0, 1), (0, -1), (1, 0), (-1, 0)]: ni, nj i di, j dj if 0 ni m and 0 nj n: dfs(ni, nj, node) visited[i][j] False for i in range(m): for j in range(n): dfs(i, j, trie.root) return result # 测试 def test_find_words(): board [[o,a,a,n],[e,t,a,e],[i,h,k,r],[i,f,l,v]] words [oath,pea,eat,rain] print(find_words(board, words)) # 输出[eat, oath] if __name__ __main__: test_find_words()总结单词搜索II是字典树和 DFS 的典型应用将所有单词插入字典树然后遍历网格查找单词。

相关文章:

LeetCode 单词搜索II题解

LeetCode 单词搜索II题解 题目描述 给定一个二维字符网格和一个字符串数组,找出所有在网格中出现的单词。 示例: 输入:board [["o","a","a","n"],["e","t","a",&quo…...

告别ST-LINK Utility:一文详解STM32CubeProgrammer在Win10下的新特性与高效用法

STM32CubeProgrammer全面指南:解锁Win10下高效开发的六大核心能力 在嵌入式开发领域,工具链的每一次迭代都意味着效率的跃升。当STMicroelectronics宣布STM32CubeProgrammer正式取代经典的ST-LINK Utility时,许多开发者还在犹豫是否要迁移到这…...

微信网页版访问技术方案:wechat-need-web扩展的智能实现

微信网页版访问技术方案:wechat-need-web扩展的智能实现 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 在当今数字化办公环境中&#xff…...

研一新生必看!文献管理软件到底要不要用?Scholaread vs Zotero新手友好度对比

刚进入研究生阶段,你可能会听到师兄师姐反复强调"一定要用文献管理软件",但心里却充满疑问:我就几十篇文献,真的需要专门的工具吗?市面上那么多软件,Zotero、EndNote、Scholaread…到底哪个适合零基础的我? **研一新生面临的最大困境:**电脑里200篇PDF文件散落在下…...

别再装Hash工具了!用7-Zip v21.07一键校验下载文件,保姆级图文教程

7-Zip隐藏技能:用右键菜单3秒完成文件校验的终极指南 当你从网上下载了一个重要文件,如何确认它没有被篡改或损坏?大多数人的第一反应是寻找专门的哈希校验工具,但你可能不知道,电脑里早已安装的7-Zip就能完美解决这个…...

瑞德克斯平台:全球金融市场的可靠选择

瑞德克斯平台:全球金融市场的可靠选择在评估金融服务平台时,监管合规、技术能力、客户服务等维度构成了重要的观察方向。瑞德克斯平台作为业内较为活跃的服务机构,其在这些方面的实践具有一定的参考价值。本文将围绕评测视角,对其…...

终极指南:如何用Tinke轻松提取和修改任天堂NDS游戏资源

终极指南:如何用Tinke轻松提取和修改任天堂NDS游戏资源 【免费下载链接】tinke Viewer and editor for files of NDS games 项目地址: https://gitcode.com/gh_mirrors/ti/tinke 还在为无法访问NDS游戏内部资源而烦恼吗?Tinke是一款免费开源的NDS…...

性能测试工程师的春天来了?深度解析2026年就业趋势

一、冰火两重天:测试就业市场的结构性裂变 2026年的技术招聘市场,回暖与寒意并存。脉脉高聘人才智库报告显示,春招新经济行业新发岗位量同比增长22.6%,AI领域岗位量更是暴涨8.7倍。然而,这轮红利并非雨露均沾。传统功…...

国央企备考求职精灵和粉笔APP哪个靠谱

每年国央企和事业单位招聘季,数百万求职者竞争激烈。面对庞大的招录名额、繁琐的笔试流程,选择合适的备考工具至关重要。市场上,粉笔是公考领域的老牌选手,而求职精灵 Genielink 作为 AI 原生工具也在改变着求职赛道格局。下面就对…...

如何快速部署微信网页版浏览器扩展:终极完整指南

如何快速部署微信网页版浏览器扩展:终极完整指南 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 还在为无法在浏览器中直接使用微信而烦恼…...

乔治亚理工等联手:让AI大模型“自学成才“,不再依赖更强大的老师

这项由佐治亚理工学院、加州大学洛杉矶分校、卡内基梅隆大学以及威廉与玛丽学院联合开展的研究,以预印本形式发布于2026年5月,论文编号为arXiv:2605.06597。感兴趣的读者可通过该编号在arXiv平台查阅完整论文。 一、问题从哪里来:大模型的&qu…...

终极指南:如何让Photoshop支持AVIF格式并实现图像体积减半

终极指南:如何让Photoshop支持AVIF格式并实现图像体积减半 【免费下载链接】avif-format An AV1 Image (AVIF) file format plug-in for Adobe Photoshop 项目地址: https://gitcode.com/gh_mirrors/avi/avif-format 想让你的Photoshop支持最新的AVIF图像格式…...

谷歌与新加坡国立大学联手打造“视频导演AI“

这项由谷歌云AI研究院与新加坡国立大学联合完成的研究,于2026年5月以预印本形式公开发布,论文编号为arXiv:2605.06924v1。有兴趣深入阅读原文的读者可通过该编号在arXiv平台检索到完整论文。**研究背景:AI拍视频为何总是"记性不好"…...

LangChain 第一课:核心架构与组件(前端友好版)

一、先一句话搞懂:LangChain 到底是什么?LangChain 是一个大模型应用开发框架,专门帮你把「大模型、RAG、Agent、工具调用」这些功能,像搭积木一样快速拼起来,不用从零写复杂逻辑。前端类比秒懂你写 Vue 要用到 Vue、V…...

银行AI大模型应用火爆!小白也能学会的数智转型秘籍,速收藏!

文章阐述了银行业在金融行业AI转型中的领先地位,AI大模型已从试点探索进入规模化落地阶段。银行采用自研与合作模式发展大模型,应用场景覆盖智能客服、信贷风控、运营自动化、财富管理及合规审计等核心业务。文章通过多个银行案例展示了AI大模型在降本增…...

ES数据库安装

ES数据库安装 # 拉取 Elasticsearch 镜像 docker pull public-docker-virtual.artsz.zte.com.cn/elasticsearch:8.8.2创建宿主机挂载目录# 统一放在 /data/es,便于管理mkdir -p /mnt/data/es/{data,config,logs,plugins}# 权限必须给足(否则容器内用户无…...

如何在Windows上使用iperf3进行专业级网络性能测试:完整指南

如何在Windows上使用iperf3进行专业级网络性能测试:完整指南 【免费下载链接】iperf3-win-builds iperf3 binaries for Windows. Benchmark your network limits. 项目地址: https://gitcode.com/gh_mirrors/ip/iperf3-win-builds iperf3作为专业的网络性能基…...

3步解锁WeMod Pro:Wand-Enhancer免费增强工具完全指南

3步解锁WeMod Pro:Wand-Enhancer免费增强工具完全指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 阅读预期:你能从本文获得什…...

互联网大厂 Java 求职面试:微服务与云原生

互联网大厂 Java 求职面试:微服务与云原生 在某互联网大厂的面试中,面试官与求职者燕双非展开了一场关于微服务与云原生的深入对话。以下是他们的问答记录。第一轮提问 面试官:燕双非,首先请你简单介绍一下你对微服务架构的理解。…...

SAST 静态代码分析平台命令行接口介绍(终结篇)

下面软件工厂生成的报告展示,可以根据客户需要定制。特别说明,下面图中的所有数据均是虚构数据,仅仅是为了做图展示。1、扫描覆盖与项目分布2、漏洞总览和项目红黑榜3、按语言统计和项目修复趋势4、合规性分析5、人员缺陷统计和型号版本质量趋…...

对抗AI焦虑的最好方式是搞懂大模型的底层原理

文章指出,尽管AI技术如RAG、MCP、Skill、Agent、Harness等迭代迅速,但程序员应专注于掌握大模型的底层原理,如记忆、信息获取、操作能力等,这些原理不会因技术变迁而失效。通过理解这些基础认知,程序员能更好地应对技术…...

保姆级教程:在GD32F103上配置USART1的DMA通道5和6(附避坑指南)

GD32F103 USART1 DMA配置全攻略:从手册解读到实战避坑 在嵌入式开发中,USART与DMA的配合使用是提升串口通信效率的黄金组合。对于刚从STM32转向GD32F103的开发者来说,手册中DMA通道映射关系的不明确常常成为第一个"拦路虎"。本文将…...

Design - 一些免费图标网站

一些有用的工具网站;除了直接AI生成外,仍然有些有用的Icon免费网站,比较适合游戏的有:1. icons8.com最适合综合型游戏项目图标、插画、UI 资源比较全风格统一,适合游戏界面、按钮、功能图标可在线调整颜色和尺寸&#…...

为什么这个电路可以放大1V信号?

你的经验可能是你的枷锁这个三级直接耦合放大电路对于1kHz峰值1V信号的放大三极直接耦合放大电路参数优化被AI欺骗啦:一个有趣的三极直接耦合放大电路的调整一个三极直接耦合放大电路的设计 01 为何能够放大1V信号? 一、电路配置结果 今天很高兴&#xf…...

学生毕业管理系统(文档+源码)_kaic

第五章 详细设计与实现5.1系统前台功能的实现5.1.1登录界面的实现首先双击打开微信小程序客户端系统,连上网络之后会显示出本系统的登录界面,这是进入小程序的第初始页面“登录”,能成功进入到该登录界面则代表小程序的开启是成功的&#xff…...

算法融合自动紧急制动控制策略【附程序】

✨ 长期致力于自动紧急制动、路面识别、模糊算法、模型预测控制、联合仿真研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)基于模糊逻辑的路面附着系数…...

用C语言和mciSendString函数,在VS2019里写一个带进度条的音乐播放器(附完整源码)

用C语言打造可视化音乐播放器:从零实现带进度条的音频控制工具 在枯燥的控制台程序与炫酷的图形界面之间,存在一个被许多C语言学习者忽视的中间地带——通过Windows API实现简单而实用的可视化反馈。本文将带你用mciSendString函数构建一个带有实时进度条…...

基于STM32F103C8T6标准库驱动2.4寸SPI TFT触摸屏:从零搭建嵌入式GUI交互系统

1. 项目概述与硬件准备 最近在做一个智能家居控制面板的项目,选用了STM32F103C8T6这块性价比超高的开发板作为主控,搭配2.4寸SPI接口的TFT触摸屏作为人机交互界面。说实话,刚开始接触这个组合时踩了不少坑,特别是用标准库开发的时…...

RJ45连接器工程实战:从PoE热故障到户外防水的12个设计禁区

一句话核心:RJ45连接器选型失败,往往不是速率不达标,而是热、水、地、工艺四个字中的一个出了问题。本文从电源供电发热、户外环境腐蚀、屏蔽接地错误、现场压接失控四个维度,梳理12个容易被忽视的设计禁区,并提供可复…...

Guava Ratelimiter实现单机接口限流

废话不多说直接上代码&#xff1a;1.依赖&#xff1a;<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>31.1-jre</version></dependency>2.配置类注册bean&#xff1a;package com.h…...