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)损害的电路元件。静电放电是在电子设备的组件之间或内部发生的突然电流放电,它可能会损坏电路或降低其性能…...
收藏!2026大模型风口来了,小白程序员如何抓住高薪机会?必看!
文章指出2026年是技术红利年,大模型领域竞争格局变化明显。国内开源模型如DeepSeek、GLM等取得巨大进展,领先全球。从业者待遇提升,应届生薪酬普遍破百万。招聘方更看重新技能,如万亿MoE、Agent等。文章强调AGI的核心是通用性&…...
从外包到正式编再到技术合伙人,我的10年职业三级跳
2003年的夏天,我从一家三本院校的计算机专业毕业,带着一份勉强过关的成绩单和两个用硬纸板打印的简历,走进了北京上地的一家软件外包公司。我的第一份职位,是连合同甲方都叫不全的“外派测试员”。坐在我旁边的,是和我…...
ChanlunX:为通达信注入缠论智能分析引擎
ChanlunX:为通达信注入缠论智能分析引擎 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 在技术分析领域,缠论以其严谨的逻辑体系和独特的市场结构认知而备受推崇。然而,…...
利用 Taotoken 用量看板精细化追踪与管理 API 成本
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用 Taotoken 用量看板精细化追踪与管理 API 成本 对于依赖大模型 API 进行开发的项目管理者或独立开发者而言,成本控…...
终极Android设备标识解决方案:免费获取OAID的完整指南
终极Android设备标识解决方案:免费获取OAID的完整指南 【免费下载链接】Android_CN_OAID 安卓设备唯一标识解决方案,可替代移动安全联盟(MSA)统一 SDK 闭源方案。包括国内手机厂商的开放匿名标识(OAID)、海…...
java之微信机器人二次开发文档
WTAPI框架weixin ipad 协议 在微信个人号二次开发中的应用,涵盖技术架构、核心功能、开发流程及安全合规要点,为开发者提供系统化解决方案。 ⚡ 核心能力 好友管理:添加好友、删除好友、修改备注、创建标签、获取好友列表、搜索好友信息 消息…...
Three.js实战:3D数据可视化入门与实践
Three.js实战:3D数据可视化入门与实践 前言 大家好,我是前端老炮儿。今天咱们来聊聊Three.js! 在数据可视化领域,3D可视化正变得越来越重要。Three.js作为一个强大的3D库,可以帮助我们轻松创建各种3D效果。 今天我就带…...
Wireshark抓包提取NTLMv2 Hash实战指南
1. 这不是“黑客演示”,而是一次内网安全加固前的必做体检你有没有遇到过这样的情况:某天突然收到告警,说域控日志里出现了大量异常的NTLM认证失败记录;或者渗透测试报告里赫然写着“存在明文凭据泄露风险”,但你翻遍所…...
iOS自动化测试环境搭建:Appium+Python真机与模拟器全链路通关指南
1. 为什么iOS自动化测试环境搭建总让人卡在第一步?“AppiumPython实现iOS自动化测试~环境搭建”——这个标题里藏着太多新手看不见的暗礁。我带过三届测试团队,每年都有至少7个人卡在“连不上真机”“Xcode报错找不到WebDriverAgent”“模拟器启动后白屏…...
SQL出现filesort 一定慢吗
前言:filesort 出现在当无法使用索引排序时,MySQL 必须自己计算排序顺序,这个过程称为 filesort。EXPLAIN 的 Extra 字段会出现 Using filesort。常见触发场景:排序列不在索引中,或顺序/方向与索引不一致ORDER BY 包含…...
