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);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律