784 - Maze Exploration-Runtime Error 的悲剧坑
怎么说呢,这道题坑死我啦,虽然很水,但我发现我更水。我竟然无数次Runtime Error...
原因很简单,我也希望借此得个教训:Runtime Error这个一般也就这些错误——访问越界或者开辟的空间不够。而且对于bfs而言,这个栈的大小开多大还是很需要注意的
我其实就犯了这个错误,但无奈我聪明的认为38*88<250,于是,我疯了。
#include
#include
#include
#define u 127
char str[38][88];///记录输入
int long_[38];///记录每行的长度
int stack[2500];///我肯定脑子被昨天的僵尸吃掉了。。。
int hang;///记录总行数
int dir[4][2]={1,0,0,1,-1,0,0,-1,};///方向数组
/**
深搜法,网上一般用这个,偶也不知道为什么
*/
void dfs(int x, int y)
{
int i,nx,ny;
str[x][y]='#';
for(i=0;i<4;i++){
nx=x+dir[i][0];
ny=y+dir[i][1];
if(nx>=0 && ny>=0 && nx
=0 && ny>=0 && nx
=0;j--){
if(str[i][j]=='*'){
recordx=i;
recordy=j;
break;
}
}
if(recordx>=0){
break;
}
}///找到遍历的起始点‘*’
bfs(recordx,recordy);
for(i=0;i<=hang;i++){
printf("%s\n",str[i]);
///最后一行“_______...”别忘了
}
}
return 0;
}