搜索
查看: 567|回复: 2
打印 上一主题 下一主题

啊哈算法中深度优先搜索解决炸弹人的代码问题

[复制链接]
跳转到指定楼层
楼主
发表于 2018-1-6 19:58:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
啊哈算法105页,截取了深搜算法的函数代码如下
[mw_shl_code=c,true]void dfs(int x,int y)  
{  
    int xnext,ynext;  
    for(int i=0;i<4;i++){  
        xnext=x+next[0];  
        ynext=y+next[1];  
        if(map[xnext][ynext]=='.'&&book[xnext][ynext]==0){  
            book[xnext][ynext]=1;  
            int sum=getsum(xnext,ynext);  
            if(sum>max){  
                xmax=xnext;  
                ymax=ynext;  
                max=sum;  
            }  
            dfs(xnext,ynext);  
            //book[xnext][ynext]=0; //深搜不一定有此句,根据需求定  
        }  
    }  
    return;  
}  [/mw_shl_code]

16行注释部分的清零语句书上是没有的,但是按照深搜的思想,在这个问题中,应该有这一句代码啊,希望大神多多指点
推荐
发表于 2018-1-7 10:00:40 | 只看该作者
清了的话时间复杂度就不是 O(NM) 了
变成了 O(NM^(NM))(应该是的?)
----------------------------------
不清零的作用是确保每个点会并且仅会被访问一次
板凳
 楼主| 发表于 2018-1-7 20:04:51 | 只看该作者
4399APPLE 发表于 2018-1-7 10:00
清了的话时间复杂度就不是 O(NM) 了
变成了 O(NM^(NM))(应该是的?)
-------------------------------- ...

昨天仔细捋了一遍问题的要求和前后的逻辑关系,已经理清关系了,多谢费心了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表