文章
2
粉丝
0
获赞
4
访问
182
采用dfs的题解,用bool型标记是否可以转向
#include<iostream>
#include<vector>
#include<algorithm>
#include<map>
using namespace std;
struct point{
int x,y;
point(int _x=0,int _y=0):x(_x),y(_y){}
};
int dx[]={-1,0,1,0};
int dy[]={0,1,0,-1};//方向数组,和0123方向对应
map<char,int> dmap={{'U',0},{'R',1},{'D',2},{'L',3}};//从字符映射到数字
char rdmap[]={'U','R','D','L'};//从数字映射到字符
int ans=1;//全局计数器,出发点也算一格
void dfs(vector<vector<char>>& grid,point s,bool turn){
//grid为整个迷宫网格,s代表起点,turn表示是否可以旋转,true表示可以
int H=grid.size(),W=grid[0].size();
int di=dmap[grid[s.x][s.y]];//根据起点标记获取di的值,di取值0,1,2,3,需要模四运算
int nx=s.x+dx[di];
int ny=s.y+dy[di];//拉取下一个位置(nx,ny)
if(0<=nx&&nx<H&&0<=ny&&ny<W&&...
登录后发布评论
暂无评论,来抢沙发