一、题目
二、思路
01海岛的变形
参考
01海岛
三、代码
class Solution {
public:
int Count=0;
vector<vector<int>>res;
vector<int>nic;
int movingCount(int m, int n, int k) {
for(int i=0;i<m;++i)
{
for(int j=0;j<n;++j)
{
nic.emplace_back(j);
}
res.emplace_back(nic);
nic.clear();
}
dfs(m,n,k,0,0);
return Count;
}
void dfs(int &m, int &n, int &k,int l,int r)
{
int ans=0;
int ll=l;
int rr=r;
while(ll)
{
ans+=ll%10;
ll=ll/10;
}
while(rr)
{
ans+=rr%10;
rr=rr/10;
}
if(l<0 || l>m-1 || r<0 || r>n-1 || ans>k)
{
return;
}
if(res[l][r]==-1)
{
return;
}
Count++;
res[l][r]=-1;
dfs(m,n,k,l+1,r);
dfs(m,n,k,l,r+1);
dfs(m,n,k,l-1,r);
dfs(m,n,k,l,r-1);
}
};