C++ reference

120 阅读1分钟

在机器人路径问题中忽略了 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;
    }
};