1. 程式人生 > 其它 >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; } };