【leetcode】剑指 Offer 12. 矩阵中的路径

bool dfs(char** board, int rSize, int* cSize, char* word, int r, int c, int cnt){
    if(r>=rSize || r<0 || c>=*cSize || c<0 || board[r][c]!=word[cnt])
        return false;
    
    if(cnt==strlen(word)-1)
        return true;

    board[r][c]='0';
    bool flag = dfs(board,rSize,cSize,word,r-1,c,cnt+1) ||
                dfs(board,rSize,cSize,word,r+1,c,cnt+1) ||
                dfs(board,rSize,cSize,word,r,c-1,cnt+1) ||
                dfs(board,rSize,cSize,word,r,c+1,cnt+1);
    board[r][c]=word[cnt];
    return flag;    
}
bool exist(char** board, int boardSize, int* boardColSize, char* word){
    for(int i=0; i<boardSize; i++)
        for(int j=0; j<*boardColSize; j++)
            if(dfs(board,boardSize,boardColSize,word,i,j,0))
                return true;
            
            return false;
}
原文地址:https://www.cnblogs.com/ganxiang/p/14087512.html