47、PHP实现机器人的运动范围

题目: PHP 实现机器人的运动范围

描述:

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

<?phpfunction movingCount($threshold, $rows, $cols)
{// write code here$q = new SplQueue();if($threshold <= 0 || $rows * $cols == 0){return 0;}$q->push([0,0]);$v = [];$v[0][0] = 1;$cnt = 0;while(!$q->isEmpty()){$t = $q->shift();$cnt ++;$i=$t[0];$j=$t[1];if(judge($i,$j+1,$threshold, $rows, $cols, $v)){$v[$i][$j+1] = 1;$q->push([$i,$j+1]);} if(judge($i,$j-1,$threshold, $rows, $cols, $v)){$v[$i][$j-1] = 1;$q->push([$i,$j-1]);}if(judge($i+1,$j,$threshold, $rows, $cols, $v)){$v[$i+1][$j] = 1;$q->push([$i+1,$j]);}if(judge($i-1,$j,$threshold, $rows, $cols, $v)){$v[$i-1][$j] = 1;$q->push([$i-1,$j]);}}return $cnt;
}function judge($i, $j, $k, $rows, $cols, &$v){if($i >= $rows || $j >=$cols || $i < 0 || $j < 0 || (isset($v[$i]) && isset($v[$i][$j]) && $v[$i][$j] == 1)){return false;}return array_sum(str_split($i)) + array_sum(str_split($j)) <= $k;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/49756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索云计算的未来:边缘计算如何重塑IT格局

目录 一、引言 二、边缘计算的基本概念与特性 1. 基本概念 2. 技术特性 三、边缘计算如何重塑IT基础设施 1. 分布式计算架构的兴起 2. 边缘节点的部署与管理 3. 数据流与业务逻辑的重新设计 4. 安全性与隐私保护的加强 四、边缘计算在关键行业的应用实践 1. 智能制造…

关联查询(xml)

多对多&#xff1a;数据库中需要有中间表&#xff0c;在两个实体类中都加入对方的List集合&#xff0c;在写查询语句时写三张表

MySQL第一阶段:多表查询、事务

继续我的MySQL之旅&#xff0c;继续上篇的DDL、DML、DQL、以及一些约束&#xff0c;该到了多表查询和事务的学习总结&#xff0c;以及相关的案例实现&#xff0c;为未来的复习以及深入的理解做好知识储备。 目录 多表查询 连接查询 内连接 外连接 子查询 事务 事务简介…

RTK高精度定位终端的功能跟用途

RTK高精度定位终端是一种集成了高精度定位技术的手持或便携式设备&#xff0c;其功能和用途广泛且重要。以下是RTK高精度定位终端的主要功能和用途&#xff1a; 一、功能 高精度定位&#xff1a; RTK技术通过接收卫星信号和地面基站的差分修正数据&#xff0c;实现厘米级甚至…

开源安全信息和事件管理(SIEM)平台OSSIM

简介 OSSIM&#xff0c;开源安全信息和事件管理&#xff08;SIEM&#xff09;产品&#xff0c;提供了经过验证的核心SIEM功能&#xff0c;包括事件收集、标准化和关联。 OSSIM作为一个开源平台&#xff0c;具有灵活性和可定制性高的优点&#xff0c;允许用户根据自己的特定需…

Java Linux操作系统

1、操作系统是协助用户调度硬件工作&#xff0c;充当用户和计算机硬件之间的桥梁 2、Linux内核 提供了linux系统的主要功能 3、发行版Centos&#xff1a;内核应用程序 4、快照&#xff1a;保存虚拟机的状态&#xff0c;当虚拟机出现问题的时候&#xff0c;可以恢复原始的状态…

Excel下载模板文件和导入文件的步骤

一、配置api // 题目导入模板下载接口 export function exportTemplate() {return request({url: /edu/question/exportTemplate,method: get,//必加header: {headers: {Content-Type: application/x-download},},responseType: "blob",//必加}) } // 题目模板数据导…

华为强制恢复出厂设置后如何恢复数据?数据重生的2个方法介绍

华为作为全球知名的手机品牌&#xff0c;其产品在市场上广受欢迎。然而&#xff0c;有时由于各种原因&#xff0c;我们可能需要强制恢复出厂设置&#xff0c;这往往意味着数据的丢失。那么&#xff0c;如何在华为强制恢复出厂设置后&#xff0c;让数据“重生”呢&#xff1f;本…

Postman测试工具详细解读

目录 一、Postman的基本概念二、Postman的主要功能1. 请求构建2. 响应查看3. 断言与自动化测试4. 环境与变量5. 集合与文档化6. 与团队实时协作 三、Postman在API测试中的重要性1. 提高测试效率2. 保障API的稳定性3. 促进团队协作4. 生成文档与交流工具 四、Postman的使用技巧1…

Ubuntu24.04 deb文件 安装 MySQL8.4

Ubuntu24.04 deb文件 安装 MySQL8.4 ubuntu24.04 deb文件安装 MySQL8 升级系统 sudo apt update sudo apt -y dist-upgrade 安装常用工具 sudo apt -y install vim net-tools wget gcc make cmake lrzsz安装依赖 sudo apt -y install libmecab2 libjson-perl libaio1t64下载…

JavaEE - Spring Boot 简介

1.Maven 1.1 什么是Maven 翻译过来就是: Maven是⼀个项⽬管理⼯具。基于POM(Project Object Model,项⽬对象模型)的概念&#xff0c;Maven可以通 过⼀⼩段描述信息来管理项⽬的构建&#xff0c;报告和⽂档的项⽬管理⼯具软件。 可以理解为&#xff1a;Maven是一个项目管理工具…

关键词查找【Knuth-Morris-Pratt (KMP) 算法】

一个视频让你彻底学懂KMP算法_哔哩哔哩_bilibili KMP算法的核心是利用匹配失败后的信息&#xff0c;尽量减少模式串与主串的匹配次数以达到快速匹配的目的。 public class KMP {// 计算部分匹配表 (LPS)private static int[] computeLPSArray(String pattern) {int[] lps new…

Arduino学习笔记1——IDE安装与起步

一、IDE安装 去浏览器直接搜索Arduino官网&#xff0c;点击Software栏进入下载界面&#xff0c;选择Windows操作系统&#xff1a; 新版IDE下载不需要提前勾选所下载的拓展包&#xff0c;下载好后直接点击安装即可。 安装好后打开Arduino IDE&#xff0c;会自动开始下载所需的…

npm publish出错,‘proxy‘ config is set properly. See: ‘npm help config‘

问题&#xff1a;使用 npm publish发布项目依赖失败&#xff0c;报错 proxy config is set properly. See: npm help config 1、先查找一下自己的代理 npm config get proxy npm config get https-proxy npm config get registry2、然后将代理和缓存置空 方式一&#xff1a; …

基于TensorFlow.js和COCO-SsD模型的实时目标检测网络应用程序

基于TensorFlow.js和COCO-SsD模型的实时目标检测网络应用程序 实现流程 访问用户的桌面录屏并且显示视频源&#xff08;位置居中&#xff09;。对视频源进行实时目标检测。在检测到的目标周围绘制边界框&#xff0c;并用它们的类别和检测置信度进行标记。在视频源下方显示一个…

openEuler安装docker,加速镜像拉取

文章目录 文章来源1.配置镜像源2.编辑配置文件3.安装想要的版本4. ~ 原神&#xff01;5.由于很多镜像无法拉取配置镜像源 文章来源 http://t.csdnimg.cn/zYDYy 原文连接 由于之前的仓库不让用且 1.配置镜像源 由于 国外的镜像仓库好多不让用 所以配置阿里的镜像源 yum-confi…

Memcached开发(七):使用Java进行操作

目录 1. 安装与配置Memcached 1.1 安装Memcached 1.2 配置Memcached 2. 使用Java与Memcached进行交互 2.1 安装Java客户端 2.2 连接Memcached 2.3 基本操作 2.3.1 设置键值对 2.3.2 获取键值对 2.3.3 删除键值对 2.3.4 检查键是否存在 2.3.5 增加和减少数值 2.4 高…

使用 com.alibaba:easyexcel 导出excel文件时遇到的问题

1.字符长度超出限制 java.lang.IllegalArgumentException: The maximum length of cell contents (text) is 32,767 characters 解决方案&#xff1a; 1. 把字符串截取前32767个字符 /*** sqlText 字段导出 excel 时的转化器*/ public class SqlTextConverter implements C…

javascript 如何将 json 格式数组转为 excel 表格| sheetJS

案例 // https://unpkg.com/xlsx0.18.5/dist/xlsx.full.min.js function exportXlsx(jsonData, fileName , mine null) {const workbook XLSX.utils.book_new();// 将JSON数组转换成工作表const worksheet XLSX.utils.json_to_sheet(jsonData);// 向工作簿添加工作表XLSX.…

建造者模式(Builder Pattern)工作原理

文章目录 [toc]建造者模式&#xff08;Builder Pattern&#xff09;工作原理一、基本概念二、主要角色三、工作流程&#xff08;一&#xff09;定义产品&#xff08;二&#xff09;定义抽象建造者&#xff08;三&#xff09;定义具体建造者&#xff08;四&#xff09;定义指挥者…