leetcode 79. 单词搜索【类似迷宫回溯】
执行用时 : 24 ms, 在Word Search的C++提交中击败了99.00% 的用户
内存消耗 : 11 MB, 在Word Search的C++提交中击败了78.26% 的用户
类似于迷宫回溯类问题。
上下左右依次寻路。并且使用vis数组作为访问标记。
使用引用加快速度。
class Solution {
public:bool exist(vector<vector<char>>& board, string &word) {//KMP算法的进化版吗。。//回溯算法,四方寻路。if(board.size()==0||word.size()==0) return false;vector<vector<int> > vis(board.size(),vector<int>(board[0].size(),0));//访问矩阵for(int i=0;i<board.size();i++){for(int j=0;j<board[0].size();j++){if(board[i][j]==word[0]) if(find(board,i,j,vis,1,word))return true;}}return false;}bool find(vector<vector<char>>& board,int i,int j,vector<vector<int> > &vis,int len,string &word)//len:当前以及找到多长的了{if(len>=word.size()){return true;}else{vis[i][j]=1;if(i-1>=0&&!vis[i-1][j]&&board[i-1][j]==word[len]) {if(find(board,i-1,j,vis,len+1,word)) return true;}if(i+1<board.size()&&!vis[i+1][j]&&board[i+1][j]==word[len]) {if(find(board,i+1,j,vis,len+1,word)) return true;}if(j-1>=0&&!vis[i][j-1]&&board[i][j-1]==word[len]) {if(find(board,i,j-1,vis,len+1,word)) return true;}if(j+1<board[0].size()&&!vis[i][j+1]&&board[i][j+1]==word[len]) {if(find(board,i,j+1,vis,len+1,word)) return true;}vis[i][j]=0;}return false;}
};
leetcode 79. 单词搜索【类似迷宫回溯】相关推荐
- Leetcode 79. 单词搜索(迷宫回溯)
给定一个 m x n 二维字符网格 board 和一个字符串单词 word .如果 word 存在于网格中,返回 true :否则,返回 false . 单词必须按照字母顺序,通过相邻的单元格内的字母 ...
- Leetcode 79. 单词搜索
Leetcode 79. 单词搜索 1.问题分析 2.问题解决 3.总结 1.问题分析 题目链接:https://leetcode-cn.com/problems/word-search/ 本质上 ...
- LeetCode 79 单词搜索
LeetCode 79 单词搜索 题目链接 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水 ...
- Leetcode 79.单词搜索
Time: 20190901 Type: Medium 题目描述 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻&q ...
- LeetCode 79. 单词搜索【c++/java详细题解】
目录 1.题目 2.思路 3.c++代码 4.java代码 1.题目 给定一个 m x n 二维字符网格 board和一个字符串单词 word .如果 word 存在于网格中,返回 true :否则, ...
- LeetCode 79. 单词搜索 | Python
文章目录 79. 单词搜索 题目 解题思路 代码实现 实现结果 总结 79. 单词搜索 题目来源:https://leetcode-cn.com/problems/word-search 题目 给定一 ...
- java实现英文文件单词搜索系统_Java实现 LeetCode 79 单词搜索
79. 单词搜索 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格. ...
- Java实现 LeetCode 79 单词搜索
79. 单词搜索 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格. ...
- LeetCode 79单词搜索80删除排序数组中的重复项Ⅱ81.搜索旋转排序数组Ⅱ
新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...
最新文章
- NSOperationQueue
- Nacos源码InstanceController
- int转换为cstring_PostgreSQL 隐式类型转换探秘
- 手术后多久可以做胆摘除_近视手术后多久可以化眼妆?
- SqlServer2008r2卸载
- Redis 数据类型及应用场景
- 西华大学c语言考试题,西华大学C语言程序设计复习题
- IntelliJ IDEA 调试技巧,比 Eclipse 强太多了!
- 21天学通mysql_《21天学通JavaWeb》 - 随笔分类 - 疯狂delphi - 博客园
- webstorm破解之jar包破解(2018)
- nachos中文教程java_Nachos实验环境搭建
- 思科交换机路由器配置命令大全
- 怎样屏蔽掉“网页对话框”
- 20行代码制作字符画版小黄鸭表情包
- 计算机的硬件地址在哪看,电脑的MAC地址在哪里查看
- 动态和静态查看一个进程的内存使用
- 【解密】OpenSea免费创造的NFT都没上链竟能出现在我的钱包里?
- VMware 安装Ubuntu系统后,启动一直黑屏
- ZeroMQ教程中文版
- 瓦克美国多晶硅基地爆炸 多晶硅及硅片或涨价
热门文章
- android 发现服务,Android服务之网络服务发现服务
- 疫情将加速元宇宙办公进程,削弱实体办公|元宇宙科技
- 理科女生学计算机好还是财经好,女生理科选什么专业好就业
- AMEYA360:芯片的四大分类
- TurboMail邮件系统资深技术支持杨工专访(二)
- ChatGPT 各类 Prompt 整理
- 抖音、快手、拼多多捕蝉,1688在后
- 为什么会显示有人正在使用计算机,微信“对方正在输入”为什么有时出现?有时不出现?看完才懂了.....
- 纯java版QQ源码下载
- 前端工程师自检清单(JavaScript基础)