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

简介: 剑指 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

解题

方法一:动态规划

leetcode-62:不同路径leetcode-63:不同路径 II一样的方法,只不过,在每个格子上面增加了 判断格子所在行列坐标数位之和是否小于k(isValid).

class Solution {
public:
    //判断格子所在行列坐标数位之和是否小于k
    bool isValid(int row,int col,int k){
        int res=0;
        while(row>0){
            res+=row%10;
            row/=10;
        }
        while(col>0){
            res+=col%10;
            col/=10;
        }
        return res<=k;
    }
    int movingCount(int m, int n, int k) {
        int res=0;
        vector<vector<bool>> dp(m,vector<bool>(n,false));//定义dp数组
        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                //起始点
                if(i==0&&j==0){
                    res++;
                    dp[i][j]=true;
                }
                //第一行,只能由左侧格子推出
                else if(i==0&&j>0&&dp[i][j-1]&&isValid(i,j,k)){
                    res++;
                    dp[i][j]=true;
                }
                //第一列,只能由上侧格子推出
                else if(i>0&&j==0&&dp[i-1][j]&&isValid(i,j,k)){
                    res++;
                    dp[i][j]=true;
                }
                //非第一行或第一列,由左侧或上侧的格子推出
                else if(i>0&&j>0&&(dp[i-1][j]||dp[i][j-1])&&isValid(i,j,k)){
                    res++;
                    dp[i][j]=true;
                }
            }
        }
        return res;
    }
};
相关文章
|
4月前
|
数据可视化 机器人 Python
实例9:四足机器人运动学正解平面RR单腿可视化
本文是关于四足机器人正向运动学(FK)的实例教程,通过Python编程实现了简化的mini pupper平面二连杆模型的腿部可视化,并根据用户输入的关节角计算出每个关节相对于基坐标系的坐标。
79 1
|
4月前
|
机器人
PUN ☀️六、机器人基础设置:运动、相机、攻击与生命值
PUN ☀️六、机器人基础设置:运动、相机、攻击与生命值
|
4月前
|
数据可视化 算法 机器人
实例10:四足机器人运动学逆解可视化与实践
本文是关于四足机器人逆运动学(IK)的实例教程,介绍了逆运动学的概念、求解方法、多解情况和工作空间,并通过Python编程实现了简化的mini pupper平面二连杆模型的逆运动学可视化,包括单腿舵机的校准和动态可视化运动学计算结果。
220 0
|
7月前
|
NoSQL 机器人 Windows
ROS机器人编程技术控制两只小海龟的编队运动
ROS机器人编程技术控制两只小海龟的编队运动
253 1
|
7月前
|
机器人 Python
Moveit + Gazebo实现联合仿真:ABB yumi双臂机器人( 二、双臂协同运动实现 )
Moveit + Gazebo实现联合仿真:ABB yumi双臂机器人( 二、双臂协同运动实现 )
|
7月前
|
机器学习/深度学习 人工智能 机器人
[译][AI 机器人] Atlas的电动新时代,不再局限于人类运动范围的动作方式
波士顿动力宣布液压Atlas机器人退役,推出全新电动Atlas,旨在实现更广泛的实际应用。这款全电动机器人将拓展人类运动范围,解决复杂工业挑战。现代汽车公司将参与其商业化进程,作为测试应用场景。波士顿动力计划与创新客户合作,逐步迭代Atlas的应用,打造高效、实用的移动机器人解决方案。Atlas将结合强化学习和计算机视觉等先进技术,通过Orbit软件平台进行管理,未来将在真实世界中发挥超越人类能力的作用。
|
算法 机器人 C++
剑指offer(C++)-JZ13:机器人的运动范围(算法-回溯)
剑指offer(C++)-JZ13:机器人的运动范围(算法-回溯)
|
传感器 Ubuntu 机器人
【5. ROS机器人的运动控制】
【5. ROS机器人的运动控制】
509 0
【5. ROS机器人的运动控制】
|
机器人
剑指offer-12.机器人的运动范围
剑指offer-12.机器人的运动范围
63 0
|
19天前
|
人工智能 自然语言处理 算法
具身智能高校实训解决方案 ----从AI大模型+机器人到通用具身智能
在具身智能的发展历程中,AI 大模型的出现成为了关键的推动力量。高校作为培养未来科技人才的摇篮,需要紧跟这一前沿趋势,开展具身智能实训课程。通过将 AI 大模型与具备 3D 视觉的机器人相结合,为学生搭建一个实践平台。
175 64