0
点赞
收藏
分享

微信扫一扫

LeetCode--矩阵中的路径

hwwjian 2022-03-20 阅读 25

题目链接

```class Solution {
public:
    bool vis[210][210];

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

    bool dfs(vector<vector<char>>& mp, string word, int x, int y, int pos) {  
        if (x < 0 || x >= mp.size() || y < 0 || y >= mp[0].size() || vis[x][y] || mp[x][y] != word[pos]) return false;
        if (pos == word.size() - 1) return true;
        vis[x][y] = true;
        bool res = dfs(mp, word, x + 1, y, pos + 1) 
            || dfs(mp, word, x - 1, y, pos + 1) 
            || dfs(mp, word, x, y + 1, pos + 1)
            || dfs(mp, word, x, y - 1, pos + 1);
        vis[x][y] = false;
        return res;
    }
};
举报

相关推荐

0 条评论