如果出现bitSum(i) + bitSum(j) > k 则说明不满足条件给定的行列数位和要小于等于k的限定条件
截止条件之后,开始进行具体的操作:即为将刚刚遍历的位置设置为true
返回的结果以递归的形式呈现:具体是 1 + 递归的结果,这个1即为当前的满足条件的位置
classSolution{publicintmovingCount(int m,int n,int k){boolean[][] visited =newboolean[m][n];returndfs(m, n, visited,0,0, k);}publicintdfs(int m,int n,boolean[][] visited,int i,int j,int k){//截止条件if(i >= m || j >= n || visited[i][j]||bitSum(i)+bitSum(j)> k)return0;
visited[i][j]=true;return1+dfs(m, n, visited, i +1, j, k)+dfs(m, n, visited, i, j +1, k);}//定义计算数位和的函数publicintbitSum(int x){int sum =0;while(x >0){
sum +=(x %10);
x /=10;}return sum;}}