news 2026/7/27 6:53:42

单词搜索- python-dfs剪枝

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
单词搜索- python-dfs剪枝

题目:

思路:

参考:https://leetcode.cn/problems/word-search/solutions/2361646/79-dan-ci-sou-suo-hui-su-qing-xi-tu-jie-5yui2/?envType=study-plan-v2&envId=top-100-liked

深度优先搜索(DFS)+ 剪枝

  • 深度优先搜索:即暴力法遍历矩阵中所有字符串可能性。DFS 通过递归,先朝一个方向搜到底,再回溯至上个节点,沿另一个方向搜索,以此类推。
  • 剪枝:在搜索中,遇到“这条路不可能和目标字符串匹配成功”的情况,例如当前矩阵元素和目标字符不匹配、或此元素已被访问,则应立即返回,从而避免不必要的搜索分支。

代码:

class Solution: def exist(self, board: List[List[str]], word: str) -> bool: def dfs(i,j,k): if not 0<=i<len(board) or not 0<=j<len(board[0]) or board[i][j] != word[k]: return False if k == len(word)-1: return True board[i][j] = '' res = dfs(i+1,j,k+1) or dfs(i-1,j,k+1) or dfs(i,j+1,k+1) or dfs(i,j-1,k+1) board[i][j] = word[k] return res for i in range(len(board)): for j in range(len(board[0])): if dfs(i,j,0):return True return False

算法解析:

  • 递归参数:当前元素在矩阵board中的行列索引ij,当前目标字符在word中的索引k
  • 终止条件:

    • false:​​​​​​​​​​​​​​(1) 行或列索引越界(2) 当前矩阵元素与目标字符不同(3) 当前矩阵元素已访问过 ( (3) 可合并至 (2) )

    • true:k = len(word) - 1,即字符串word已全部匹配。

  • 递推工作:​​​​​​​

    • 标记当前矩阵元素: 将board[i][j]修改为空字符'',代表此元素已访问过,防止之后搜索时重复访问。
    • 搜索下一单元格: 朝当前元素的 上、下、左、右 四个方向开启下层递归,使用 或 连接 (代表只需找到一条可行路径就直接返回,不再做后续 DFS ),并记录结果至 res 。

    • 还原当前矩阵元素: 将board[i][j]元素还原至初始值,即word[k]
  • 返回值:返回布尔量res,代表是否搜索到目标字符串。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/26 10:57:01

AutoDL复现Deep3DFaceRecon_pytorch记录

AutoDL复现Deep3DFaceRecon_pytorch记录 在深度学习项目复现中&#xff0c;环境配置往往比模型训练本身更让人头疼。尤其是涉及3D重建、可微渲染这类对底层依赖敏感的任务&#xff0c;一个不兼容的CUDA版本或缺失的编译工具链就可能导致整个流程失败。最近我在尝试复现 sicxu/…

作者头像 李华
网站建设 2026/7/26 12:29:35

寒武纪MLU上快速入门PyTorch指南

寒武纪MLU上快速入门PyTorch指南 在国产AI芯片加速落地的今天&#xff0c;越来越多的研究机构和企业开始将深度学习任务从传统GPU平台迁移到信创生态。寒武纪MLU作为国内领先的AI加速器&#xff0c;凭借其高性能、低功耗和良好的软件兼容性&#xff0c;正在成为替代NVIDIA CUDA…

作者头像 李华
网站建设 2026/7/22 0:53:20

仅限内部分享的技术细节:智普AutoGLM训练加速的5个黑科技

第一章&#xff1a;智普Open-AutoGLM沉思在人工智能与自动化深度融合的当下&#xff0c;智普推出的 Open-AutoGLM 项目为大语言模型的自主推理与任务执行提供了全新范式。该项目结合了 GLM 架构的强大语义理解能力与自动化代理&#xff08;Auto Agent&#xff09;机制&#xff…

作者头像 李华
网站建设 2026/7/21 14:05:50

Open-AutoGLM本地部署终极方案(含私密配置技巧与加速下载方法)

第一章&#xff1a;Open-AutoGLM本地部署终极方案概述在大模型应用日益普及的背景下&#xff0c;Open-AutoGLM 作为一款支持自动化任务推理与代码生成的开源语言模型&#xff0c;其本地化部署成为开发者关注的重点。本地部署不仅保障数据隐私&#xff0c;还能实现低延迟响应和定…

作者头像 李华
网站建设 2026/7/22 21:39:07

TensorFlow 2.0 GPU加速配置全指南

TensorFlow 2.9 GPU 加速开发环境实战指南 在深度学习模型日益复杂、训练数据不断膨胀的今天&#xff0c;单靠 CPU 已难以支撑高效的模型迭代。GPU 凭借其强大的并行计算能力&#xff0c;成为现代 AI 开发的标配硬件。然而&#xff0c;手动配置 CUDA 驱动、cuDNN 库与 TensorF…

作者头像 李华
网站建设 2026/7/23 0:21:33

Windows 10下Miniconda搭建YOLOv5与LabelImg环境

Windows 10 下 Miniconda 搭建 YOLOv5 与 LabelImg 开发环境 在智能安防摄像头自动识别人形、工业流水线实时检测缺陷的今天&#xff0c;目标检测早已不是实验室里的概念&#xff0c;而是真正落地于产线和终端的实用技术。对于刚入门计算机视觉的开发者来说&#xff0c;如何快…

作者头像 李华