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

单词搜索-leetcode

题目描述

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

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

示例 1:

img

输入:board = [['A','B','C','E'],['S','F','C','S'],['A','D','E','E']], word = "ABCCED"
输出:true

示例 2:

img

输入:board = [['A','B','C','E'],['S','F','C','S'],['A','D','E','E']], word = "SEE"
输出:true

示例 3:

img

输入:board = [['A','B','C','E'],['S','F','C','S'],['A','D','E','E']], word = "ABCB"
输出:false

提示:

  • m == board.length
  • n = board[i].length
  • 1 <= m, n <= 6
  • 1 <= word.length <= 15
  • boardword 仅由大小写英文字母组成

解法一

思路:

回溯法,首先遍历一遍寻找所有可能的开头位置,用visited数组记录当前位置是否被访问过,在候选位置判断其在二维数组的上下左右的位置是否满足word[k]的字符,满足其接着判断下一个位置,过程中要进行恢复之前状态。

代码:

class Solution {private boolean flag = false;public boolean exist(char[][] board, String word) {boolean[][] visited = new boolean[board.length][board[0].length];for (int i = 0; i < board.length; i++) {for (int j = 0; j < board[0].length; j++) {if(board[i][j] == word.charAt(0)) {visited[i][j] = true;backTrack(board,word,1,visited,i,j);visited[i][j] = false;}}}return flag;}public void backTrack(char[][] board, String word,int k,boolean[][] visited,int i,int j) {if(flag) return;if(k==word.length()){flag = true;return;}if(i-1>=0&&!visited[i-1][j]&&board[i-1][j]==word.charAt(k)){visited[i-1][j] = true;backTrack(board,word,k+1,visited,i-1,j);visited[i-1][j] = false;}if(i+1<board.length&&!visited[i+1][j]&&board[i+1][j]==word.charAt(k)){visited[i+1][j] = true;backTrack(board,word,k+1,visited,i+1,j);visited[i+1][j] = false;}if(j-1>=0&&!visited[i][j-1]&&board[i][j-1]==word.charAt(k)){visited[i][j-1] = true;backTrack(board,word,k+1,visited,i,j-1);visited[i][j-1] = false;}if(j+1<board[0].length&&!visited[i][j+1]&&board[i][j+1]==word.charAt(k)){visited[i][j+1] = true;backTrack(board,word,k+1,visited,i,j+1);visited[i][j+1] = false;}}
}
http://www.jsqmd.com/news/551191/

相关文章:

  • Ring-1T-FP8开源:万亿参数AI推理新突破
  • 颠覆电路设计效率:Draw-io-ECE插件全面解析与实战指南
  • 5大核心功能解锁N_m3u8DL-RE:跨平台流媒体下载终极指南
  • Windows10 22H2 游戏定制优化版!游戏性能优化,Win10专业版、专业工作站版、字体美化版!集成DX游戏组件、离线运行库DLL文件,电脑装机操作系统安装更新升级重装
  • Android 12 HAL开发避坑实录:手把手教你用AIDL在Native层实现一个可开机自启动的Service
  • 实测有效!Qwen3-VL-WEBUI镜像部署教程,快速上手多模态AI
  • SAR成像CS算法实战:从原理到点目标仿真的MATLAB实现
  • 5.JVM-方法区
  • 搭建Gitea并自动拉取代码
  • 春联生成模型-中文-base功能体验:支持多种祝福词,生成对仗工整春联
  • 3分钟掌握Adobe扩展安装效率工具:设计师必备的开源解决方案
  • DiskInfo开源硬盘检测工具:实时监控与健康诊断解决方案
  • 【问题】thor上的cubLas
  • 实战应用构建:基于快马平台开发可部署的智能成片PPT网站
  • Qwen3-0.6B-FP8实战:构建基于操作系统的命令行智能助手
  • 正规的座机号码认证服务商有哪些?固定电话显示企业名称 - 企业服务推荐
  • OptiScaler终极指南:解锁游戏性能与画质的完美平衡
  • 【js基础】继承(原型链继承、组合式继承、寄生组合式继承、class的实现)
  • SWAT建模(学习中)
  • 什么是大模型投毒?大模型投毒原理、路径和案例剖析
  • 告别论文焦虑:Paperxie 如何用四大降重神器搞定毕业论文重复率与 AIGC 率
  • 为你的员工考核提供25个聪明的绩效考核问题
  • 爱芯元智上市后首次年报:营收5.6亿同比增19% 智能汽车业务成增长引擎
  • 终极资源下载神器:res-downloader 全网视频音频一键获取完整指南
  • Keil魔术棒里这10个配置,搞懂一半你就能超越80%的嵌入式新手
  • 数据模型与指标模型有什么区别?一文讲清
  • 深入解析CSS2盒子模型:三大布局技巧与两大空白问题解决方案
  • 想转行AI行业?从入门到精通,掌握人工智能的核心技能!非常详细收藏我这一篇就够了
  • 大模型技能加持!运维工程师薪资飙升53%,AI架构师跃迁秘籍大公开!
  • 2026年3月进口户外漆厂家推荐,进口户外木漆、木器漆、防水漆、地面漆、金属漆、庭院栅栏漆、水性户外漆,长效耐候防腐实力源头厂商 - 品牌企业推荐师(官方)