剑指offer12.矩阵中的路径

这篇具有很好参考价值的文章主要介绍了剑指offer12.矩阵中的路径。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

剑指offer12.矩阵中的路径,剑指offer,矩阵,leetcode,算法

剑指offer12.矩阵中的路径,剑指offer,矩阵,leetcode,算法 太难了,想了一会儿没有头绪就直接看了题解。

class Solution {
    public boolean exist(char[][] board, String word) {
       int clowns = board.length;
       int rows = board[0].length;
       boolean[][] visited = new boolean[clowns][rows];
       for(int i =0;i<clowns;i++){
           for(int j=0;j<rows;j++){
             boolean flag = check(board, i, j, 0, visited, word);
             if(flag){
                 return true;
             }
           }
       }
      return false;
    }
    public boolean check(char[][] board, int i, int j, int k,boolean[][] visited, String word){
        if(board[i][j] != word.charAt(k)){
            return false;
        }else if(k == word.length() - 1){
            return true;
        }
        visited[i][j] = true;
        boolean result = false;
        int[][] direction = {{0,1}, {0,-1}, {1,0}, {-1,0}};
        for(int[] dir : direction){
            int newi = i + dir[0]; int newj = j + dir[1];
               if(newi >= 0 & newi < board.length & newj >= 0 & newj < board[0].length){
                if(!visited[newi][newj]){
                 boolean flag = check(board, newi, newj, k+1, visited, word);
                 if(flag){
                     result = true;
                     break;
                 }
            }
          }  
        }
        visited[i][j] = false;
        return result;
    }  
}

题解用的是回溯算法,check(i,j,k)表示从board[i][j]位置开始能否搜索到word第k个字符后面的字串,能搜索到返回true否则返回false。如果board[i][j] != word[k] 返回false。如果相等且是最后一个字符返回true,如果相等但不是最后一个字符,遍历所有相邻位置,如果能搜索到word[k+1]返回true否则返回false。遍历所有位置的[i][j],只要有一个能返回true说明能够找到,否则找不到,其中还要维护一个visited的boolean数组,访问过的元素不能再访问。文章来源地址https://www.toymoban.com/news/detail-540114.html

到了这里,关于剑指offer12.矩阵中的路径的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 剑指offer12.矩阵中的路径

     太难了,想了一会儿没有头绪就直接看了题解。 题解用的是回溯算法,check(i,j,k)表示从board[i][j]位置开始能否搜索到word第k个字符后面的字串,能搜索到返回true否则返回false。如果board[i][j] != word[k] 返回false。如果相等且是最后一个字符返回true,如果相等但不是最后一个字符

    2024年02月13日
    浏览(40)
  • 剑指Offer12.矩阵中的路径 C++

    给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。

    2024年02月14日
    浏览(36)
  • 用 Go 剑指 Offer 12. 矩阵中的路径

    给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使

    2023年04月10日
    浏览(39)
  • 剑指 Offer 12. 矩阵中的路径(回溯 DFS)

    给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。

    2024年02月12日
    浏览(35)
  • 用 Go 剑指 Offer 12. 矩阵中的路径 (DFS + 回溯)

    给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使

    2023年04月10日
    浏览(41)
  • 剑指offer12 矩阵中的路径 13 机器人的运动范围 34.二叉树中和为某一值得路径

    //写的有点问题,暂时想不到怎么改,先放着,通过用例71/83 卡住的是abcd 但是改了又有问题 无语 看了 答案 都写不对 在类成员里面定义了row和col 就不要重复定义了 不然不知道为什么就开始发疯 先贴出蠢货写出来的东西 审题也审不明白 机器人只能上下左右走 不能一行一行

    2024年02月15日
    浏览(38)
  • 剑指 Offer 29. 顺时针打印矩阵 / LeetCode 54. 螺旋矩阵(模拟)

    链接:剑指 Offer 29. 顺时针打印矩阵;LeetCode 54. 螺旋矩阵 难度:中等 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2: 输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 输出:

    2024年02月15日
    浏览(43)
  • 【LeetCode-简单】剑指 Offer 29. 顺时针打印矩阵(详解)

    输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 示例 2: 剑指 Offer 29. 顺时针打印矩阵 - 力扣(LeetCode) 与 力扣54题相同 54. 螺旋矩阵 二维数组顺时针从外往里走 可以想象成:按照 右-》下-》左 -》上 的顺序一直走,走过的地方不要走即可。

    2024年02月09日
    浏览(54)
  • 【LeetCode-中等】剑指 Offer 29. 顺时针打印矩阵(详解)

    输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 示例 2: 剑指 Offer 29. 顺时针打印矩阵 - 力扣(LeetCode) 与 力扣54题相同 54. 螺旋矩阵 二维数组顺时针从外往里走 可以想象成:按照 右-》下-》左 -》上 的顺序一直走,走过的地方不要走即可。

    2024年02月13日
    浏览(45)
  • 【LeetCode】剑指 Offer Ⅱ 第8章:树(12道题) -- Java Version

    题库链接 :https://leetcode.cn/problem-list/e8X3pBZi/ 类型 题目 解决方案 二叉树的深搜 剑指 Offer II 047. 二叉树剪枝 递归(深搜):二叉树的后序遍历 (⭐) 剑指 Offer II 048. 序列化和反序列化二叉树 递归(深搜):二叉树的前序遍历(⭐) 剑指 Offer II 049. 从根节点到叶节点的路径

    2024年02月06日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包