0
点赞
收藏
分享

微信扫一扫

20220325-AC算法-JZ12

小_北_爸 2022-03-25 阅读 75
leetcode

剑指 Offer 12. 矩阵中的路径

class Solution{
private:
    vector<vector<char>> board;
    string word;
public:
    bool exist(vector<vector<char>>& my_board,string my_word){
        this->board = my_board;    
        this->word  = my_word;    
        for(int i = 0;i < my_board.size();i++){
            for(int j = 0;j < my_board[0].size();j++){
                if(dfs(i,j,0)){
                    return true;
                }
            }
        }
        return false;
    }
    bool dfs(int i,int j,int k){
        if(i < 0 || i > board.size() - 1 || j < 0 || j > board[0].size() - 1 || board[i][j] != word[k]){
            return false;
        }
        if(k == word.size() - 1){
            return true;
        }
        char ch = board[i][j];  
        board[i][j] = 0;
        bool ret = dfs(i - 1,j,k + 1) || dfs(i + 1,j,k + 1) || dfs(i,j - 1,k + 1) || dfs(i,j + 1,k + 1);
        board[i][j] = ch;   
        return ret;
    }
};

 

举报

相关推荐

0 条评论