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);

    }
}
posted @   Dreamer_szy  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示