C++--机器人的运动范围
目录
1. 题目
2. 思路
3. C++代码测试
4. 测试结果
1. 题目
地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?
2. 思路
这道题类似走迷宫,我们可以先用矩阵全部存储false,代表没有走过
编写计算一个数的各数位和的函数
对于任意一点,我们需要对它,它的上下左右,一共5个点进行判断,每遍历一个点,则该false为ture
按照上述一条要求,编写判断一点及其周围满足条件的点数量
利用递归,计算总数
这里为了计算更加简单,把二维数组改写成一位数组进行计算
每个点是否满足条件的判断:点必须在该矩阵中,各数位和小于规定值,每个点代表的值为false,也就是没有遍历过
3. C++代码测试
#include<iostream>
using namespace std;//计算各数位的和
int sum(int n)
{
int result=0;
while(n)
{
result+=n%10;
n=n/10;
}
return result;
}//计算一个点及四周满足条件的点数量
int moving(int threshold,int rows,int cols,int m,int n,bool *flag)
{
int count=0;
if(m>=0&&m<rows&&n>=0&&n<cols&&sum(m)+sum(n)<=threshold&&flag[m*cols+n]==false)
{
flag[m*cols+n]=true;
count=1+moving(threshold,rows,cols,m-1,n,flag)+moving(threshold,rows,cols,m+1,n,flag)+moving(threshold,rows,cols,m,n-1,flag)+moving(threshold,rows,cols,m,n+1,flag);
}return count;}//计算二维数组中满足条件的总点数
int movingCount(int threshold, int rows, int cols){bool *flag=new bool[rows*cols];for (int i=0;i<rows*cols;i++)flag[i]=false;int count=moving(threshold,rows,cols,0,0,flag);return count;}int main()
{//测试代码
cout<<movingCount(18,100,100);return 0;
}
4. 测试结果

相关文章:
C++--机器人的运动范围
目录 1. 题目 2. 思路 3. C代码测试 4. 测试结果 1. 题目 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格…...
深度学习API——keras初学
keras定义相关概念: Keras是一个深度学习API,使用Python语言编写的github开源项目,主要开发者为谷歌工程师。Keras底层可调用不同的机器学习平台,如TensorFlow、Theano或micsoft-CNTK。 作用:keras主要功能是简化机器…...
Web APIs知识点讲解(阶段二)
DOM-事件基础 一.事件 1.事件 目标:能够给 DOM元素添加事件监听 事件:事件是在编程时系统内发生的动作或者发生的事情,比如用户在网页上单击一个按钮 事件监听:就是让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函…...
多平台拼音输入法软件的开发
拼音输入法从上个世纪发展到现在, 已经发展了几十年了, 技术上已经非常成熟了. 换句话说, 就是实际上没多少技术含量, 随便来个人就能手搓一个. 本文介绍一个简单的多平台拼音输入法软件的设计和实现, 支持 GNU/Linux (ibus) 平台 (PC) 和 Android 平台 (手机). 目录 1 中文输…...
Flutter学习7 - Dart 泛型
1、泛型类 //泛型类 class Cache<T> {final Map<String, T> _cache {};void saveData(String key, T value) {_cache[key] value;}//泛型方法T? getData(String key) {return _cache[key];} }void main() {Cache<int> cache1 Cache();const String name…...
Git 基本操作 ⼯作区、暂存区、版本库
创建本地仓库: 创建 Git 本地仓库 要提前说的是,仓库是进行版本控制的⼀个文件目录。我们要想对文件进行版本控制,就必须先创建⼀个仓库出来。 首先touch 一个文件: 初始化仓库: 创建完成后,我们会发现当前…...
利用Vue3的新API(customRef)实现防抖效果
customRef是创建一个自定义的 ref,然后显式声明对其依赖追踪和更新触发的控制方式。因为ref是直接更新的,数据修改会马上更新,而customRef可以认为控制更新的过程,比如可以利用这个api控制 空格输入限制、数据更新速度控制、违规内…...
【Linux】在 Ubuntu 系统下使用 Screen 运行 Python 脚本
在 Ubuntu 系统下使用 Screen 运行 Python 脚本的优点 在 Ubuntu 操作系统中,Screen 是一种非常有用的工具,特别是在需要长时间运行的任务或者需要在后台运行的任务中。结合 Python 脚本,Screen 提供了一种灵活且高效的方式来管理和执行任务…...
jxls——自定义命令设置动态行高
文章目录 前言依赖引入绘制 jxls 批注的 excel 模板测试类编写自定义命令关于自动换行 前言 之前的博客中都简单说了数据的渲染和导出excel文件。包括固定的 表头结构,以及动态 表头和表数据等方式。 本篇博客主要说明自定义命令的方式,控制输出excel文…...
前端面试练习24.3.2-3.3
HTMLCSS部分 一.说一说HTML的语义化 在我看来,它的语义化其实是为了便于机器来看的,当然,程序员在使用语义化标签时也可以使得代码更加易读,对于用户来说,这样有利于构建良好的网页结构,可以在优化用户体…...
优先级队列(Java )
目录 一、 优先级队列1、概念 二、优先级队列的模拟实现1、堆的概念2、堆的存储方式 三、堆的创建1、堆向下调整2、堆的创建3、建堆的时间复杂度 四、堆的插入与删除1、堆的插入2、堆的删除 五、用堆模拟实现优先级队列 一、 优先级队列 1、概念 优先级队列(Priori…...
大宋咨询如何进行汽车门店6S标准现场检查
随着汽车市场的快速发展,汽车门店的现场管理日益受到关注。6S标准现场检查作为一项重要的评估工具,正在被越来越多的汽车厂商和经销商采用。 6S标准现场检查是指对汽车门店的整理、整顿、清洁、清扫、素养和安全六个方面进行规范和优化,旨在…...
仿牛客网项目---点赞模块的实现
本篇文章介绍一下项目中的点赞模块。 点赞模块是一个通过使用Redis实现的功能模块,它提供了点赞操作的处理逻辑和数据存取功能。通过服务类和控制器类的配合,点赞模块实现了用户对实体的点赞、点赞数量的查询、点赞状态的查询等功能。该模块使用了Redis…...
【AI视野·今日CV 计算机视觉论文速览 第300期】Fri, 1 Mar 2024
AI视野今日CS.CV 计算机视觉论文速览 Fri, 1 Mar 2024 Totally 114 papers 👉上期速览✈更多精彩请移步主页 Daily Computer Vision Papers DistriFusion: Distributed Parallel Inference for High-Resolution Diffusion Models Authors Muyang Li, Tianle Cai, J…...
【单片机学习的准备】
文章目录 前言一、找一个视频是二、画图软件三、装keil5 仿真protues总结 前言 提示:这里可以添加本文要记录的大概内容: 项目需要: 提示:以下是本篇文章正文内容,下面案例可供参考 一、找一个视频是 https://www.b…...
力扣hot100:438.找到字符串中所有字母异位词
26个字符,我复制怎么了?26个字符我比较个数怎么了? 顶多时间复杂度*26 本题用固定窗口大小的滑动窗口每次比较包含26个元素的数组次数,最容易写。 动态窗口大小哈希表存数值(双指针差值)难想难写。 一、动态…...
Kali Linux 2024.1
Kali Linux 2024.1刚刚发布,标志着这个备受欢迎的安全重点Linux发行版在今年的首次重大更新。以其先进的渗透测试和安全审计功能而闻名,它是安全专业人员和爱好者的首选工具。 Kali 2024.1 亮点 本次发布由 Linux 内核 6.6 提供支持,突出了…...
springboot启动加载
目录 使用PostConstruct注解 实现InitializingBean接口 实现CommandLineRunner接口 实现ApplicationRunner接口 使用EventListener注解监听ApplicationReadyEvent事件 应用启动完成之前或者之后,我们需要拿数据库中的一些数据加载到本地缓存中。这些数据一般都…...
基于Java的智能停车场管理系统(Vue.js+SpringBoot)
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容A. 车主端功能B. 停车工作人员功能C. 系统管理员功能1. 停车位模块2. 车辆模块3. 停车记录模块4. IC卡模块5. IC卡挂失模块 三、界面展示3.1 登录注册3.2 车辆模块3.3 停车位模块3.4 停车数据模块3.5 IC卡档案模块3.6 IC卡挂…...
ESD Clamp cell是什么?
ESD CLAMP cell(静电放电钳位单元)是一种专门设计来保护集成电路(IC)免受静电放电(ESD)损害的电路元件。静电放电是在电子设备的组件之间或内部发生的突然电流放电,它可能会损坏电路或降低其性能…...
Chord视频时空定位惊艳效果:边界框动态跟踪+毫秒级时间戳可视化呈现
Chord视频时空定位惊艳效果:边界框动态跟踪毫秒级时间戳可视化呈现 1. 工具核心能力展示 Chord视频时空理解工具基于先进的Qwen2.5-VL架构开发,专门解决视频内容分析的复杂需求。与传统图像分析工具不同,Chord能够理解视频中的时序信息&…...
Project AirSim避障实战:深度图分割与动态航向规划详解
1. 深度图避障的核心原理 深度图避障是无人机自主导航中最基础也最关键的环节之一。简单来说,它就像给无人机装上了一双能精确测距的"眼睛"。这双眼睛看到的不是普通照片,而是一张每个像素都带有距离信息的特殊图像——我们称之为深度图&#…...
从HTTP/3看TCP的困境:QUIC协议如何用UDP实现可靠传输?对比Wireshark抓包实例
HTTP/3时代TCP的困境与QUIC协议的革新之路 当你在手机上观看YouTube视频时,是否注意到缓冲速度比几年前快了许多?这背后隐藏着一场互联网传输协议的静默革命。传统TCP协议在移动互联网时代暴露出诸多局限性,而基于UDP的QUIC协议正在悄然改变游…...
FinalBurn Neo:让经典街机游戏在现代设备上完美重生
FinalBurn Neo:让经典街机游戏在现代设备上完美重生 【免费下载链接】FBNeo FinalBurn Neo - We are Team FBNeo. 项目地址: https://gitcode.com/gh_mirrors/fb/FBNeo FinalBurn Neo是一款专注于经典街机游戏的开源模拟器,它基于FinalBurn和早期…...
WarcraftHelper:魔兽争霸3兼容性救星,让经典游戏在现代电脑上重生!
WarcraftHelper:魔兽争霸3兼容性救星,让经典游戏在现代电脑上重生! 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper …...
让旧电脑焕发新生:RyTuneX系统优化工具全解析
让旧电脑焕发新生:RyTuneX系统优化工具全解析 【免费下载链接】RyTuneX RyTuneX is a cutting-edge optimizer built with the WinUI 3 framework, designed to amplify the performance of Windows devices. Crafted for both Windows 10 and 11. 项目地址: http…...
经典美剧《暗黑》1-3季4K中英字幕 网盘发送
对《暗黑》任何“烧脑”“神剧”“开挂”的标签都是极其肤浅的论断。 看懂“暗黑”,已然不只是对众多人物关系线的梳理,对单个人物本身时间线的捋顺,它已经站在了哲学或者说神学的山巅尽量地发出凡人能够接受的光波和光谱。 是爱因斯坦相对论…...
NeuroKit2深度解析:Python神经生理信号处理的进阶实战指南
NeuroKit2深度解析:Python神经生理信号处理的进阶实战指南 【免费下载链接】NeuroKit NeuroKit2: The Python Toolbox for Neurophysiological Signal Processing 项目地址: https://gitcode.com/gh_mirrors/ne/NeuroKit 在当今神经科学和生物医学工程领域&a…...
Linux上使用apt-file查找编译时缺失的依赖库
前言:在Linux上做开发时会遇到依赖库缺失与环境配置问题,如报"fatal error:xxxxxxx.h:没有那个文件或者目录"等错误,此时则只能通过提示中缺失的头文件"xxxxxxx.h"进行缺失依赖库的定位,若错误提示的头文件为…...
SDXL-Turbo创作分享:用实时绘画工具生成的精美作品案例
SDXL-Turbo创作分享:用实时绘画工具生成的精美作品案例 1. 引言:实时AI绘画的新纪元 想象一下这样的场景:你正在构思一个赛博朋克风格的城市景观,随着键盘的每一次敲击,眼前的画面实时变化,就像魔术师挥动…...
