题目
思路及代码
public class Solution {
public int movingCount(int threshold, int rows, int cols) {
if(threshold <0 || rows < 1 ||cols < 1) return 0;
boolean[][] flag = new boolean[rows][cols]; //默认false
return search (threshold,rows,cols,0,0,flag);
}
public int he(int i){
int t1= i/10;
int t2= i%10;
return t1+t2;
}
public int search(int threshold,int rows,int cols,int i,int j,boolean[][] flag){
if(i< 0 ||i>= rows ||j<0 || j>= cols || flag[i][j] == true || (he(i)+he(j))> threshold){
return 0;
}else{
flag[i][j] = true;
return (1+ search(threshold,rows,cols,i-1,j,flag)+
search(threshold,rows,cols,i+1,j,flag)+
search(threshold,rows,cols,i,j-1,flag)+
search(threshold,rows,cols,i,j+1,flag));
}
}
}