leetcode-79. 单词搜索(剑指offer矩阵中的路径)

时间:2021-07-17
本文章向大家介绍leetcode-79. 单词搜索(剑指offer矩阵中的路径),主要包括leetcode-79. 单词搜索(剑指offer矩阵中的路径)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

下面的dfs在剑指offer上没毛病,在leetcode上超时

class Solution {
public:
    bool exist(vector<vector<char>>& board, string word) {
        int m = board.size();
        int n = board[0].size();
        for(int i = 0; i < m; i++)
            for(int j = 0; j < n; j++){
                if(board[i][j]==word[0]){
                    vector<vector<bool>> visited(m, vector<bool>(n,false));
                    if(dfs(board,visited,word,i,j,0))
                        return true;
                }
            }
        return false;

    }

    bool dfs(vector<vector<char>> board, vector<vector<bool>> visited,string word,int i, int j,int index){
        int m = board.size();
        int n = board[0].size();
        if(i<0||i>=m||j<0||j>=n||visited[i][j]||board[i][j]!=word[index])
            return false;
        visited[i][j] = true;
        if(index==word.size()-1)
            return true;
        if(dfs(board,visited,word,i-1,j,index+1)||dfs(board,visited,word,i+1,j,index+1)||dfs(board,visited,word,i,j-1,index+1)||dfs(board,visited,word,i,j+1,index+1))
            return true;
        visited[i][j] = false;  // 复原
        return false;
    }
};

原文地址:https://www.cnblogs.com/ymec/p/15024230.html