在机器人路径问题中忽略了 visit 应该传入的是 reference 而浪费大量时间。注意 数组可以不用reference但vector 需要传入reference
public:
int movingCount(int m, int n, int k) {
vector<vector<bool>> visit(m,vector<bool>(n,false));
return dfs(m,n,visit,0,0,k);
}
int dfs(int row,int column,vector<vector<bool>>& visit,int m,int n,int k){
if(m<0||n<0||m>=row||n>=column||sum(n)+sum(m)>k||visit[m][n]==true) return 0;
visit[m][n]=true;
return 1+dfs(row,column,visit,m,n+1,k)+dfs(row,column,visit,m+1,n,k)+dfs(row,column,visit,m-1,n,k)+dfs(row,column,visit,m,n-1,k);
}
int sum(int x){
int s=0;
while(x!=0){
int remainder=x%10;
x=x/10;
s+=remainder;
}
return s;
}
};