题目描述
dfs 瞎琢磨
特判一下是不是只有(0,0)这一个点
然后就没什么好讲的
C++ 代码
class Solution {
public:
int ans=0;
int k,m,n;
int dx[4]={0,0,-1,1};
int dy[4]={1,-1,0,0};
int vis[55][55];
int movingCount(int threshold, int rows, int cols)
{
if(rows==0&&cols==0) return 0;
k=threshold;
m=rows;
n=cols;
dfs(0,0);
return ans;
}
int dfs(int x, int y){
if(x%10+x/10+y%10+y/10<=k) ans++;
else return false;
vis[x][y]=1;
for(int i=0;i<4;i++){
int nx=x+dx[i];
int ny=y+dy[i];
if(nx>=0&&nx<m&&ny>=0&&ny<n&&vis[nx][ny]==0) dfs(nx,ny);
}
}
};