剑指 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+在此格子上的又一上,下,左,右的选择。

相关推荐
kyle~1 小时前
机器人开发团队协作方法论:从传感数据流到运动控制的工程闭环
机器人
迁移科技2 小时前
告别人工分拣!迁移科技 AI+3D 视觉让机器人 “看懂” 无序抓取
人工智能·科技·3d·机器人·自动化·视觉检测
御风而行的蚂蚁5 小时前
Ubuntu 20.04 / 18.04 双版本 ROS1 安装保姆级教程
机器人
武子康5 小时前
调查研究-140 全球机器人产业深度调研报告【02篇】:全球机器人产业格局分析:五个阶段并存与商业化路径 2026
人工智能·ai·机器人·具身智能·智能化
a752066285 小时前
OpenClaw企业微信渠道配置教程|API模式+长连接+全部授权
人工智能·机器人·企业微信·openclaw部署·小龙虾一键安装
传说故事6 小时前
【论文阅读】GEN-0: Embodied Foundation Models That Scale with Physical Interaction
论文阅读·人工智能·机器人·具身智能
工业机器人销售服务7 小时前
在珠宝首饰加工中,遨博协作机器人配合微力控技术,实现宝石的自动化镶嵌
运维·机器人·自动化
研究点啥好呢12 小时前
小鹏汽车 机器人运动规划算法工程师 面试题精选:10道高频考题+答案解析
算法·机器人·汽车
txg66612 小时前
机器人领域简报(2026年5月15日—5月21日)
人工智能·机器人
kyle~12 小时前
机器人链路开发---故障注入(主动破坏式可靠性测试)
机器人