个人网站建设多少钱网站建设翻译插件
news/
2025/9/28 9:05:02/
文章来源:
个人网站建设多少钱,网站建设翻译插件,wordpress全部404,学做网站的书哪些好矩阵中的路径
题目
给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中#xff0c;返回 true #xff1b;否则#xff0c;返回 false 。
单词必须按照字母顺序#xff0c;通过相邻的单元格内的字母构成#xff0c;其中“相邻”单元格是…矩阵中的路径
题目
给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中返回 true 否则返回 false 。
单词必须按照字母顺序通过相邻的单元格内的字母构成其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。
例如在下面的 3×4 的矩阵中包含单词 “ABCCED”单词中的字母已标出。 示例 1
输入board [[A,B,C,E],[S,F,C,S],[A,D,E,E]], word ABCCED
输出true示例 2
输入board [[a,b],[c,d]], word abcd
输出false解题思路
深度优先搜索 可以理解为暴力法遍历矩阵中所有字符串可能性。DFS 通过递归先朝一个方向搜到底再回溯至上个节点沿另一个方向搜索以此类推。 剪枝 在搜索中遇到 这条路不可能和目标字符串匹配成功 的情况例如此矩阵元素和目标字符不同、此元素已被访问则应立即返回称之为 可行性剪枝 。
var exist function(board, word) {let m board.length;let n board[0].length;const dfs (i,j,k){//当元素超过边界时元素与word数组的第k给元素不相等时返回falseif(im||i0||jn||j0||board[i][j]!word[k]) return false;//当元素在数组范围内且与第k个word相等时进行下面的操作//当k值为word最后一位元素下表时且满足了上诉条件则说明已经在数组匹配到符合的元素if(kword.length-1) return true;//每一次深度搜索遍历完一个元素把它置为绝对与word不相等的符号表示该位置已经遍历过了board[i][j] ;//开始遍历下一个位置四个方向k值加1表示应该匹配word的下一个元素了let res dnf(i1,j,k1)||dnf(i,j1,k1)||dnf(i-1,j,k1)||dnf(i,j-1,k1);//一次深度搜索遍历完了把置空的那个元素恢复board[i][j] word[k];return res;}for(let i0;im;i){for(let j0;jn;j){//在二维数组中遍历为一个元素让每一个元素进行深度优先搜索if(dfs(i,j,0)) return true;}}return false;
};
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920422.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!