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

LeetCode 79. 单词搜索

 题目描述  

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

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

示例

示例 1:

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

示例 2:

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

示例 3:

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

解法

1.回溯法

解题思路

       此题与LeetCode 200. 岛屿数量-CSDN博客问题有些类似,就是以每个点都作为起点深度优先遍历一遍,在遍历过程中要标记已读,并回溯,此问题只需要找到一个答案,于是找到答案立马返回。

class Solution {
public:bool exist(vector<vector<char>>& board, string word) {const int DIRS[4][2] = {{0,1},{0,-1},{1,0},{-1,0}};int m = board.size(),n = board[0].size(),t = word.size();auto dfs = [&](this auto && dfs,int i,int j,int l){if(i < 0 || i >= m || j < 0 || j >= n || l > t || board[i][j] != word[l]) return false;if(l == t - 1) return true; //因为从0开始计数char temp = board[i][j];board[i][j] = '#';   //标记已读for(int x = 0;x < 4;x ++){if(dfs(i + DIRS[x][0],j + DIRS[x][1],l + 1)) return true;}board[i][j] = temp; //回溯return false;};for(int i = 0;i < m;i ++){for(int j = 0;j < n;j ++){if(dfs(i,j,0)) return true; //有一个起点满足条件,就要返回}}return false;}
};

 时间复杂度O(M·N·4^L),空间复杂度O(L)(L为单词长度,也是递归深度,需要栈存储数据)

http://www.dtcms.com/a/541312.html

相关文章:

  • 网站建设维护需要懂哪些知识漂亮网页模板
  • 大模型框架选型:LangChain 与 LlamaIndex、Haystack 的核心差异对比
  • 关注公众号平台seo案例视频教程
  • SPL量化工作台使用教程-1-数据和画图
  • 【QT】窗口
  • 脑科学支持的Python学习法:每天2小时碎片化训练,用‘神经可塑性’打败拖延症“
  • 长春网站业务哪个公司好网页设计师女生工资
  • 南昌做网站开发的公司有哪些竞价推广论坛
  • 行业首发!Spring AI Alibaba + Nacos 支持分布式 Multi-Agent 构建
  • 海口建设网站建立网站需要钱吗
  • Linux上的exec函数族详解
  • 产品推荐|千眼狼全新第二代背照式制冷sCMOS相机上市,再次刷新灵敏度和噪声极限
  • 常见协议格式
  • 境外网站可以备案吗长沙网站排名优化费用
  • h5游戏免费下载:上山打老虎
  • 力扣面试经典150题打卡
  • 网站设计就业压力官方网站开发招标须知
  • Android开发常见报错及解决方法(详细版)
  • 做网站内容火星人网页设计培训
  • 免费微网站_自助建站海外直播tiktok
  • 浔川社团总访问量超 13 万:数据见证成长,热爱铸就辉煌
  • Java的StringBuffer类
  • 商务网站建设的流程网站建设需求分析报告撰写
  • EagleTrader交易员采访|用概率取代情绪,让交易回归理性
  • 【复现】AI-IMU Dead-Reckoning
  • 哪个建设网站公司好苏州网站建设软件
  • 帮别人设计做关于图的网站关键词排名推广
  • Kotlin reified泛型 和 Java 泛型 区别
  • 新手如何优化网站排名国外网站注册
  • 湖南网站建设效果东莞南城做网站推广的公司