Leetcode剑指13:机器人的运动范围
这题其实和剑指12矩阵中的路径有一点点像
因为机器人每次只能走一格,所以在当前单元格上进行移动。所以要进行标记走过的单元格。还要保证每次走到的单元格的数位和不超过k
因此递归结束条件为:1、i、j索引越界 2、数位和相加大于k 3、已被访问过
class Solution {
int m,n,k,res=0;
boolean[][] visited;
public int movingCount(int m,int n,int k){
this.m=m;
this.n=n;
this.k=k;
//不显式赋值都为false
visited=new boolean[m][n];
backtracking(0,0);
return res;
}
public void backtracking(int i,int j){
if(i>=m || j>=n || i<0 || j<0 || visited[i][j]){
return;
}
visited[i][j]=true;
int sum=i%10+j%10+i/10+j/10;
if(sum>k){
return;
}
res++;
backtracking(i-1,j);
backtracking(i+1,j);
backtracking(i,j-1);
backtracking(i,j+1);
}
}

浙公网安备 33010602011771号