栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

机器人的运动范围

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

机器人的运动范围

机器人的运动范围题解

1.题目描述2.思路3.代码4.总结

1.题目描述

2.思路

思路类似于矩阵的路径,类似于矩阵上的遍历。基本思路就是矩阵的遍历加上回溯方法。回溯方法依赖于visited[i][j]矩阵,如果遍历过就结束。基本的代码模板是dfs函数递归加回溯。

3.代码
public class 机器人的运动范围 {
    int res = 0;
    boolean[][] visited;
    public int movingCount(int m, int n, int k) {
        visited = new boolean[m][n];
        dfs(0,0,m,n,k);
        return res;
    }

    public void dfs(int i,int j,int m, int n,int k){
        if (i<0||i>m-1||j<0||j>n-1||getSum(i)+getSum(j)>k||visited[i][j]) {
            return;
        }
        if (i>=0&&i<=m-1&&j>=0&&j<=n-1&&getSum(i)+getSum(j)<=k&&!visited[i][j]) {
            visited[i][j] = true;
            res++;
        }
        dfs(i+1,j,m,n,k);
        dfs(i-1,j,m,n,k);
        dfs(i,j+1,m,n,k);
        dfs(i,j-1,m,n,k);
    }

    public int getSum(int k){
        int tmp = 0;
        while (k!=0){
            tmp += k % 10;
            k /= 10;
        }
        return tmp;
    }
}
4.总结

矩阵dfs遍历加回溯

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/786402.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号