[剑指offer] 机器人的运动范围

简介: 本文首发于我的个人博客:尾尾部落题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。

本文首发于我的个人博客:尾尾部落

题目描述

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

解题思路

回溯法:从(0,0)开始走,每成功走一步用一个flag数组标记当前位置为1,然后从当前位置往四个方向探索,
返回1 + 4 个方向的探索值之和。

参考代码

public class Solution {
    public int movingCount(int threshold, int rows, int cols)
    {   
        if(threshold == 0)
            return 0;
        int flag[][] = new int[rows][cols];
        return count(threshold, rows, cols, 0, 0, flag);
    }
    public int count(int threshold, int rows, int cols, int i, int j, int[][] flag){
        if(i<0 || j<0 || i>=rows || j>=cols || sum(i)+sum(j) > threshold || flag[i][j] == 1){
            return 0;
        }
        flag[i][j] = 1;
        return 1 + count(threshold, rows, cols, i - 1, j, flag) + 
            count(threshold, rows, cols, i + 1, j, flag) +
            count(threshold, rows, cols, i, j - 1, flag) +
            count(threshold, rows, cols, i, j + 1, flag);
    }
    public int sum(int i){
        int s = 0;
        while(i>0){
            s += i%10;
            i /= 10;
        }
        return s;
    }
}
目录
相关文章
|
8月前
|
机器人
剑指 Offer 13:机器人的运动范围
剑指 Offer 13:机器人的运动范围
59 0
|
5月前
|
数据可视化 机器人 Python
实例9:四足机器人运动学正解平面RR单腿可视化
本文是关于四足机器人正向运动学(FK)的实例教程,通过Python编程实现了简化的mini pupper平面二连杆模型的腿部可视化,并根据用户输入的关节角计算出每个关节相对于基坐标系的坐标。
96 1
|
5月前
|
机器人
PUN ☀️六、机器人基础设置:运动、相机、攻击与生命值
PUN ☀️六、机器人基础设置:运动、相机、攻击与生命值
|
5月前
|
数据可视化 算法 机器人
实例10:四足机器人运动学逆解可视化与实践
本文是关于四足机器人逆运动学(IK)的实例教程,介绍了逆运动学的概念、求解方法、多解情况和工作空间,并通过Python编程实现了简化的mini pupper平面二连杆模型的逆运动学可视化,包括单腿舵机的校准和动态可视化运动学计算结果。
287 0
|
8月前
|
NoSQL 机器人 Windows
ROS机器人编程技术控制两只小海龟的编队运动
ROS机器人编程技术控制两只小海龟的编队运动
294 1
|
8月前
|
机器人 Python
Moveit + Gazebo实现联合仿真:ABB yumi双臂机器人( 二、双臂协同运动实现 )
Moveit + Gazebo实现联合仿真:ABB yumi双臂机器人( 二、双臂协同运动实现 )
|
8月前
|
机器学习/深度学习 人工智能 机器人
[译][AI 机器人] Atlas的电动新时代,不再局限于人类运动范围的动作方式
波士顿动力宣布液压Atlas机器人退役,推出全新电动Atlas,旨在实现更广泛的实际应用。这款全电动机器人将拓展人类运动范围,解决复杂工业挑战。现代汽车公司将参与其商业化进程,作为测试应用场景。波士顿动力计划与创新客户合作,逐步迭代Atlas的应用,打造高效、实用的移动机器人解决方案。Atlas将结合强化学习和计算机视觉等先进技术,通过Orbit软件平台进行管理,未来将在真实世界中发挥超越人类能力的作用。
|
2月前
|
人工智能 自然语言处理 算法
具身智能高校实训解决方案 ----从AI大模型+机器人到通用具身智能
在具身智能的发展历程中,AI 大模型的出现成为了关键的推动力量。高校作为培养未来科技人才的摇篮,需要紧跟这一前沿趋势,开展具身智能实训课程。通过将 AI 大模型与具备 3D 视觉的机器人相结合,为学生搭建一个实践平台。
218 64
|
23天前
|
机器学习/深度学习 人工智能 算法
人工智能与机器人的结合:智能化世界的未来
人工智能与机器人的结合:智能化世界的未来
138 32
|
6天前
|
数据采集 监控 数据可视化
优锘科技携手逐际动力,共创数字孪生与具身智能机器人新未来
近日,优锘科技与逐际动力正式宣布达成战略合作,双方将在业务和技术领域展开深度协作,共同探索数字孪生与具身智能机器人的融合应用。这一合作无疑将为智能科技领域注入全新动力,推动行业智能化转型迈向更高水平。

热门文章

最新文章