剑指 Offer 13. 机器人的运动范围

地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 35, 37 ,因为3+5+3+7=18。但它不能进入方格 35, 38,因为3+5+3+8=19。请问该机器人能够到达多少个格子?

示例 1:

复制代码
输入:m = 2, n = 3, k = 1
输出:3

示例 2:

复制代码
输入:m = 3, n = 1, k = 0
输出:1

提示:

  • 1 <= n,m <= 100
  • 0 <= k <= 20
java 复制代码
class Solution {
    public int movingCount(int m, int n, int k) {
        boolean[][] visited = new boolean[m][n];
        return dfs(0, 0, m, n, k, visited);
    }

    private int dfs(int i, int j, int m, int n, int k, boolean visited[][]) {
        if (i < 0 || i >= m || j < 0 || j >= n || (i/10 + i%10 + j/10 + j%10) > k || visited[i][j]) {
            return 0;
        }
        visited[i][j] = true;
        return 1+ dfs(i + 1, j, m, n, k, visited) + dfs(i - 1, j, m, n, k, visited) + 
               dfs(i, j + 1, m, n, k, visited) + dfs(i, j - 1, m, n, k, visited);
    }
}

本题解使用到了递归,也就是递归处理机器人在上,下,左,右的行进,如果不符合条件则返回0,如果符合条件则返回1+在此格子上的又一上,下,左,右的选择。

相关推荐
tianxuanjg44 分钟前
工业/协作机器人连接法兰采购指南|高精度安装定位零件怎么选
经验分享·机器人·无人机·制造·材质
QYR-分析3 小时前
机器人扭矩传感器行业深度研究:技术迭代、市场格局与增量前景
机器人
沫儿笙3 小时前
弧机器人混合气节气设备
机器人
YH行业报告分析5 小时前
2026具身智能产业爆发:具身智能训练平台如何破解机器人策略迭代效率痛点?
机器人
天空属于哈夫克35 小时前
企业微信API:企业微信机器人如何开发?
python·机器人·企业微信
微小冷6 小时前
ROS2 URDF机器人建模初步教程
机器人·ros2·urdf·机器人建模
码农5997 小时前
Fast DDS 到底怎么用?一文理清发现、传输与 QoS 配置
机器人
Rocktech_ruixun7 小时前
机器人视觉SLAM对主控硬件有哪些要求?瑞迅科技RK3588/3576/3568分级方案解析
人工智能·嵌入式硬件·机器人
xiaoduo AI8 小时前
抖音小店客服机器人哪个好?选择AI客服主要看哪些功能?
大数据·人工智能·机器人
茶栀(*´I`*)8 小时前
Python网络机器人入门:从Robots协议、网页结构到Requests库的基础实践
网络·python·机器人