AcWing 24. 机器人的运动范围
原题链接
简单
作者:
兔兔
,
2021-03-09 18:51:42
,
所有人可见
,
阅读 264
C++ 代码
class Solution {
public:
int movingCount(int threshold, int rows, int cols)
{
if(!rows||!cols)return 0;
int ans=0;
vector<vector<bool>> vec(rows,vector<bool>(cols));
queue<pair<int,int>> q;
q.push({0,0});
vec[0][0]=true;
while(!q.empty()){
auto t=q.front();
q.pop();
ans++;
int dir[][2]={{1,0},{-1,0},{0,1},{0,-1}};
for(int i=0;i<4;++i){
int xx=t.first+dir[i][0];
int yy=t.second+dir[i][1];
if(xx>=0&&xx<rows&&yy>=0&&yy<cols&&!vec[xx][yy]&&xx%10+xx/10+yy%10+yy/10<=threshold){
q.push({xx,yy});
vec[xx][yy]=true;
}
}
}
return ans;
}
};