题目:

思路:

一般遇到路径搜索问题,基本上都是 DFS 深度优先遍历和回溯 方向
这题可以建立一个递归的模型

  1. 递归出口是 递归的深度 等于 单词 的长度
  2. 递归二维数组的时候需要判断边界条件和是否已经遍历过该位置,或者是该位置的字符不等于word对应遍历深度的字符
  3. 以顺时针的方向去遍历相邻的位置
  4. 只要存在一种方向遍历返回了true,就说明存在一条路径,那么就可以直接返回true
  5. 要注意标记遍历过的位置

Java语言题解:

class Solution {boolean[][] flag;char[][] board_0;int row;int col;public boolean exist(char[][] board, String word) {row = board.length;col = board[0].length;board_0 = board;flag = new boolean[row][col];for(int i = 0;i<row;i++){for(int j = 0;j<col;j++){if(dfs(i,j,word,0)){return true;}}}return false;}public boolean dfs(int i,int j,String word,int dx){if(dx == word.length()) return true;if(!checkBoard(i,j) || flag[i][j] || word.charAt(dx)!=board_0[i][j]) return false;flag[i][j] = true;boolean f0 = dfs(i-1,j,word,dx+1);boolean f1 = dfs(i,j+1,word,dx+1);boolean f2 = dfs(i+1,j,word,dx+1);boolean f3 = dfs(i,j-1,word,dx+1);if(f0 || f1 || f2 || f3) return true;flag[i][j] = false;return false;}public boolean checkBoard(int i,int j){if(i>=row||i<0) return false;if(j>=col||j<0) return false;return true;}}

一些注意事项

//获取二维数组的行高度
int row = board.length;
//获取二维数组的列高度;
int col = board[0].length;

LeetCode 单词搜索相关推荐

  1. LeetCode 212. 单词搜索 II(Trie树+DFS)

    1. 题目 给定一个二维网格 board 和一个字典中的单词列表 words,找出所有同时在二维网格和字典中出现的单词. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻&qu ...

  2. Leetcode 79.单词搜索

    Time: 20190901 Type: Medium 题目描述 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻&q ...

  3. LeetCode之单词搜索(回溯法求解)

    题目 给定一个 m x n 二维字符网格 board 和一个字符串单词 word .如果 word 存在于网格中,返回 true :否则,返回 false . 单词必须按照字母顺序,通过相邻的单元格内 ...

  4. LeetCode 79单词搜索80删除排序数组中的重复项Ⅱ81.搜索旋转排序数组Ⅱ

    新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...

  5. leetcode: 212. 单词搜索II

    212. 单词搜索II 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/word-search-ii 给定一个 m x n 二维字符网格 board和 ...

  6. Leetcode系列-字符串-单词搜索II

    单词搜索II理解与分析 题目大意(原题参见leetcode官网) 给定一个单词列表和二维字符网格,找到网格中所有存在于单词列表中的单词并返回.单词与网格中都只包含小写字母. 解题思路 方法一(效率低, ...

  7. Leetcode 79. 单词搜索

    Leetcode 79. 单词搜索 1.问题分析 2.问题解决 3.总结 1.问题分析 题目链接:https://leetcode-cn.com/problems/word-search/   本质上 ...

  8. LeetCode 79 单词搜索

    LeetCode 79 单词搜索 题目链接 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水 ...

  9. LeetCode算法题13:DFS/BFS - 单词搜索

    文章目录 单词搜索 DFS : 小小的优化 总结 单词搜索 题目链接:https://leetcode-cn.com/problems/word-search/ 题目描述: 给定一个 m x n 二维 ...

最新文章

  1. windows server 2008 开机进度条闪过后重启_Windows系统损坏 | 无法进入系统如何正常备份数据?...
  2. 如何解决notefirst的闪退问题?
  3. wxPython笔记
  4. 直观展示卷积核(转)
  5. Python装饰器执行顺序详解
  6. 如何升级浏览器_Chrome谷歌浏览器秒变科研神器,让你的效率提升10倍!
  7. 康托展开与八数码问题
  8. node --- 监听文件变化(静态、动态、子进程)
  9. 如何在 .NET Core 中获取 CPU 使用率
  10. 2017中国HPC TOP100:AI成最大赢家,浪潮和老黄都笑了
  11. UML统一建模语UML2和EnterpriseArchitect
  12. matlab cdfx,在 Simulink 数据字典中使用 ASAM CDFX 数据
  13. 身份证识别和聚合收单
  14. List集合进行分组
  15. 【常见问题】Waki_谢老师B站的HCNP/HCIP课程第27集的华为eNSP路由器配置问题——百兆口不能添加IP地址
  16. 6-2 读文章(*) (10分)
  17. JAVA入门————API(常用API)
  18. 开心网 开心网 到底哪个是开心网?
  19. RedHat Linux 9.0系统的安装(图文并茂) 下载地址在最后面
  20. 锂电池Simulink建模二阶戴维南模型二阶RC模型

热门文章

  1. java的calendar的get_Java Calendar get()方法与示例
  2. UPD简单的数据发送
  3. 商情云 | php学习 | wampserver | 宝塔面板 | fastadmin框架 | JS学习
  4. 工商银行支付接口-处理工行支付成功后的消息通知
  5. P4138 [JOISC2014]挂饰
  6. linux 内网机器访问外网代理设置
  7. Revit API之在墙或者屋顶上开洞口【比目鱼原创】
  8. JAVA计算机毕业设计校园摄影爱好者交流网站计算机(附源码、数据库)
  9. 物联网LoRa系列-17:LoRa终端Sx1262芯片内部的射频信号放大器
  10. 官方泄密 诺基亚Meego新机Z500曝光