描述
地上有一个 rows 行和 cols 列的方格。坐标从 [0,0] 到 [rows-1,cols-1] 。一个机器人从坐标 [0,0] 的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于 threshold 的格子。 例如,当 threshold 为 18 时,机器人能够进入方格 [35,37] ,因为 3+5+3+7 = 18。但是,它不能进入方格 [35,38] ,因为 3+5+3+8 = 19 。请问该机器人能够达到多少个格子?
思路
与上一题的思路差不多,就是将每个格子都初试化为0,走过的格子记为1,然后一个一个去试当前格式是否满足题目的要求,最后返回所有结果。
代码中Count中的return是灵魂,从一个点开始遍历,等到经过该点的所有路径都遍历后,再去遍历下一个点。
代码
public class Solution {
public int movingCount(int threshold, int rows, int cols) {
int count = 0;
int flag[][] = new int[rows][cols]; //记录是否已经走过
return Count(0,0,rows,cols,flag,threshold);
}
public int sumData(int i,int j){
int sum = 0;
sum = sum+i/10+i%10+j/10+