java:
学习题解 dfs 不难 但是写不完整
class Solution {
int res = 0;
public int movingCount(int m, int n, int k) {
boolean[][] arr = new boolean[m][n];
dfs(0, 0, m, n, k, arr);
return res;
}
public void dfs(int i, int j, int m, int n, int k, boolean[][]arr){
if(i >= m || i < 0 || j >= n || j < 0 || arr[i][j]){
return;
}
arr[i][j] = true;
int sum = i % 10 + j % 10 + i /10 + j / 10;
if(sum > k) return;
res ++;
dfs(i - 1, j, m, n, k, arr);
dfs(i + 1, j, m, n, k, arr);
dfs(i, j - 1, m, n, k, arr);
dfs(i, j + 1, m, n, k, arr);
}
}