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

天津建设协会网站织梦网站调用工具

天津建设协会网站,织梦网站调用工具,wordpress做商城,wordpress登录可见菜单前言 记录一下刷题历程 力扣第79题 单词搜索 单词搜索 原题目#xff1a;给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中#xff0c;返回 true #xff1b;否则#xff0c;返回 false 。 单词必须按照字母顺序#xff0c;通过相邻…前言 记录一下刷题历程 力扣第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为例先是字母A发现匹配然后分别向上下左右去找下一个匹配的加入向下搜索发现不匹配那么就回溯到A继续搜索其它方向直到搜索出单词返回true。 代码如下 class Solution { public:bool exist(vectorvectorchar board, string word) {// 获取棋盘的行数和列数int rows board.size();int cols board[0].size();// 创建一个二维布尔数组用于标记每个位置是否被访问过vectorvectorbool visit(rows, vectorbool(cols, false));// 遍历棋盘的每一个位置作为搜索的起点for (int row 0; row rows; row) {for (int col 0; col cols; col) {// 从当前起点位置开始进行深度优先搜索DFSif (dfs(board, word, row, col, 0, visit)) {// 如果找到了目标单词则返回 truereturn true;}}}// 如果遍历完所有起点位置都没有找到目标单词则返回 falsereturn false;}bool dfs(vectorvectorchar board, string word, int row, int col, int index, vectorvectorbool visit) {// 如果当前索引等于目标单词的长度说明找到了完整的单词if (index word.length()) {return true;}// 如果当前坐标超出棋盘边界或者当前字符不匹配或者当前坐标已经被访问过则返回 falseint rows board.size();int cols board[0].size();if (row rows || row 0 || col cols || col 0 || board[row][col] ! word[index] || visit[row][col]) {return false;}// 标记当前位置已被访问visit[row][col] true;// 递归地探索四个方向上下左右查找是否可以继续匹配目标单词bool res dfs(board, word, row 1, col, index 1, visit) || // 向下dfs(board, word, row - 1, col, index 1, visit) || // 向上dfs(board, word, row, col 1, index 1, visit) || // 向右dfs(board, word, row, col - 1, index 1, visit); // 向左// 回溯时取消当前位置的访问标记visit[row][col] false;// 返回是否找到了目标单词return res;} };解释注释 1.exist 方法该方法负责在棋盘上查找是否存在目标单词。 首先获取棋盘的行数和列数并创建一个二维布尔数组 visit 用于记录每个位置是否已经被访问过。 遍历棋盘上的每一个位置将其作为 DFS 搜索的起点。 对每个起点调用 dfs 方法进行深度优先搜索如果找到了目标单词则返回 true。 如果遍历完所有位置后都没有找到目标单词则返回 false。 2.dfs 方法这是一个递归函数用于从当前坐标进行深度优先搜索。 当 index 等于目标单词的长度时说明找到了完整的单词返回 true。 如果当前位置超出边界、字符不匹配或已经被访问过则返回 false。 标记当前位置已被访问然后递归探索上下左右四个方向。 递归完成后取消当前位置的访问标记回溯以便其他路径可以访问到该位置。 返回是否找到目标单词。
http://www.dnsts.com.cn/news/216184.html

相关文章:

  • 色系网站的自媒体平台网站开发
  • 建筑网站视频大全广东商城网站建设价格低
  • 图书网站怎么做保定网络关键词排名
  • 如何做网站地图txt湖北省网站备案
  • 网站开发设计的阶段打游戏一天赚200元
  • 如何创建自己的公司网站手机网站怎么开发
  • 鹿泉企业网站建设什么网站做3d模型能赚钱
  • 怎么推广网站平台中企动力做的网站怎么登陆
  • 做网站的模板广告设计公司怎么找业务
  • 石家庄做网站推广网站设计包括哪些内容
  • 天津网站排名方案怎么修改网站标题
  • 景安网站备案查询众筹网站开发成本
  • 福州市工程建设质量管理网站php网站开发用什么php
  • 做公司集团网站我的免费网
  • 网站限定域名四川住房和城乡建设厅网站电话
  • 网站中的作用网站建设费计入那个科目
  • 长沙公司网站建设网站点击量查询
  • 一个虚拟主机多个网站wordpress动态背景
  • 中小企业网站建设与推广分析无锡室内设计公司
  • 试卷网站在线做做食品的采购员常用网站
  • 这几年做那个网站致富松江手机网站建设
  • 网站开发专业前景wordpress添加备案号插件
  • 深圳集团网站建设海报设计图
  • 网站用ps做还是aiwordpress 摘要长度
  • 一元夺宝网站建设2017wordpress简洁博客主题
  • 建设银行网站首页下载北京 好的网站制作
  • 怎么申请订阅号沈阳seo收费
  • 乐云seo网站建设公司设计网站要多少钱
  • 可以做盗版漫画网站吗设计制作活动主题
  • 外贸网站模板设计军事最新消息今天