dfs搜索路径

2018-03-06  本文已影响0人  laochonger

1 规定一个搜索顺序(右下左上)
2 标记起点(book[1][1] = 1)
3 dfs:

void dfs(int x, int y, int step){//坐标及步数 
    int next[4][2] = {0 , 1}, {1 , 0}, {0 , -1}, {-1 , 0};//右下左上
    
    if(...){//是否到达
        
        if(step < min)
            min = step; 
        
        return ;
    } 
    
    for(int i = 0; i <= 3 ; i++){
        
        x += next[k][0];
        y += next[k][1];
        
        if(...) continue;//是否越界
        
        if(...){ //判断是否为障碍物或者已经在路径中 
            book[x][y] = 1;
            dfs(x , y , step+1);
            book[x][y] = 0;
        }
    }
    
    return ;
}
上一篇 下一篇

猜你喜欢

热点阅读