美文网首页
矩阵中的路径

矩阵中的路径

作者: 曾大稳丶 | 来源:发表于2022-05-31 11:23 被阅读0次

题目链接:https://leetcode.cn/problems/ju-zhen-zhong-de-lu-jing-lcof/

image.png
image.png

题目解析
本题采用暴力解析,采用遍历的方式, 从 (i,j)位置开始进行对比第一个字符,如果当前位置满足,在继续邻边匹配下一个字符,直到匹配到最后一个字符。需要注意的是需要标记一下之前的匹配位置,不然造成重复匹配。
专业术语: 深度优先搜索(DFS)+ 剪枝

public boolean exist(char[][] board, String word) {
    char [] words = word.toCharArray();
    for (int i = 0; i < board.length; i++) {
        for (int j = 0; j < board[0].length; j++) {
            if (dfs(board,words,i,j,0)){
                return true;
            }
        }
    }
    return false;
}
private boolean dfs(char[][] board, char[] word,int i,int j,int k){
    if (i >= board.length || i<0 || j>=board[0].length || j<0 || word[k]!=board[i][j]){
        return false;
    }
    if (k == word.length-1) return true;
    board[i][j] = '\0';
    boolean res = dfs(board,word,i+1,j,k+1) || dfs(board,word,i-1,j,k+1)
            || dfs(board,word,i,j+1,k+1) || dfs(board,word,i,j-1,k+1);
    board[i][j] = word[k];
    return res;
}

复杂度分析
M,N 分别为矩阵行列大小, K 为字符串 word 长度。
空间复杂度: O(K):递归最大深度为 K。
时间复杂度: O(3kMN):MN是 board 的遍历次数,3k是每一次遍历有 3 种可能,需要遍历K次。

相关文章

  • 矩阵中的路径

    请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每...

  • 矩阵中的路径

    请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每...

  • 矩阵中的路径

    题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格...

  • 矩阵中的路径

    题目要求: 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个...

  • 矩阵中的路径

    题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格...

  • 矩阵中的路径

    《剑指offer》面试题12:矩阵中的路径 题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有...

  • 矩阵中的路径

    设计一个函数判断一个矩阵中是否存在一条包含某字符串中所有字符的路径。路径可以从矩阵任一格开始,每一步向上、下、左、...

  • 矩阵中的路径

    题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格...

  • 矩阵中的路径

    题目描述:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格...

  • 矩阵中的路径

    题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开...

网友评论

      本文标题:矩阵中的路径

      本文链接:https://www.haomeiwen.com/subject/gylzprtx.html