美文网首页
剑指 Offer 第12题:矩阵中的路径

剑指 Offer 第12题:矩阵中的路径

作者: 放开那个BUG | 来源:发表于2022-07-06 14:02 被阅读0次

    1、前言

    题目描述

    2、思路

    DFS 思路,只要有一个成功就是成功。

    3、代码

    class Solution {
        public boolean exist(char[][] board, String word) {
            if(board == null || board.length == 0 || word == null || word.length() == 0){
                return false;
            }
            int m = board.length, n = board[0].length;
            boolean[][] visited = new boolean[m][n];
            for(int i = 0; i < m; i++){
                for(int j = 0; j < n; j++){
                    if(board[i][j] == word.charAt(0) && dfs(board, i, j, word, 0, visited)){
                        return true;
                    }
                }
            }
            return false;
        }
    
        private boolean dfs(char[][] board, int i, int j, String word, int index, boolean[][] visited) {
            if(i < 0 || i >= board.length || j < 0 || j >= board[0].length || visited[i][j] || index == word.length() || word.charAt(index) != board[i][j]){
                return false;
            }
    
            if(index == word.length() - 1){
                return true;
            }
    
            visited[i][j] = true;
            if(dfs(board, i - 1, j, word, index + 1, visited) || dfs(board, i + 1, j, word, index + 1, visited)
                    || dfs(board, i, j - 1, word, index + 1, visited) || dfs(board, i, j + 1, word, index + 1, visited)){
                return true;
            }
            visited[i][j] = false;
    
            return false;
        }
    }
    

    相关文章

      网友评论

          本文标题:剑指 Offer 第12题:矩阵中的路径

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