从零学算法2849

2849.给你四个整数 sx、sy、fx、fy 以及一个 非负整数 t 。
在一个无限的二维网格中,你从单元格 (sx, sy) 开始出发。每一秒,你 必须 移动到任一与之前所处单元格相邻的单元格中。
如果你能在 恰好 t 秒 后到达单元格 (fx, fy) ,返回 true ;否则,返回 false 。
单元格的 相邻单元格 是指该单元格周围与其至少共享一个角的 8 个单元格。你可以多次访问同一个单元格。
示例 1:
输入:sx = 2, sy = 4, fx = 7, fy = 7, t = 6
输出:true
解释:从单元格 (2, 4) 开始出发,可以在恰好 6 秒后到达单元格 (7, 7) 。
示例 2:
输入:sx = 3, sy = 1, fx = 7, fy = 3, t = 3
输出:false
解释:从单元格 (3, 1) 开始出发,至少需要 4 秒后到达单元格 (7, 3) 。 因此,无法在 3 秒后到达单元格 (7, 3) 。

  • 我的思路:不用想的太复杂,其实根据它可重复到达单元格以及可移动到任一相邻单元格的特性,只要给你的时间 t 大于等于至少所需时间,就能到达。
  • 至少所需时间:首先起点到终点经过转换都能看成 (0,0) 到达 (x,y),并且到 (x,y) 和到 (-x,y),(x,-y),(-x,-y) 都是一样的。所以比如 (0,0) 到 (2,3),最快的移动方式肯定是先到 (1,1) ,然后到 (2,2),最后到 (2,3)。因为同样从 (0,0) 到 (1,1),直线行走至少需要 2 秒,斜着走只需要 1 秒,所以肯定是能斜着走就斜着走。所以至少所需秒数其实就是斜着的 2 秒加上剩下的 3-2 秒。相加其实不就是 3,所以至少需要 max(x,y) 秒。但是还有一种特殊情况,就是如果起点就在终点,这时候再给你一秒,那你往哪走都回不来了,所以还需要特判这种情况。
  •   public boolean isReachableAtTime(int sx, int sy, int fx, int fy, int t) {// fx-sy,fy-sy:转换为 (0,0) -> (x,y)// abs():上面说了 (0,0) -> (x,y) 和 (0,0) -> (-x,-y) 至少需要的秒数一样	int x = Math.abs(fx-sx);int y = Math.abs(fy-sy);int min = x<y?y:x;// 不在起点,并且给你的时间大于至少所需时间 || 在起点,给你的不是 1 秒return (min>0 && t>=min) || (min==0 && t!=1);}
    

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

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

相关文章

目标检测YOLO实战应用案例100讲-毫米波辐射图像去模糊重建与目标检测(续)

目录 3.3基于RSRN模型的毫米波辐射图像去模糊重建方法 3.3.2非线性映射 3.3.3多尺度模糊提取

淘宝京东扣库存怎么实现的

1. 使用kv存储实时的库存&#xff0c;直接在kv里扣减&#xff0c;避免用分布式锁 2. 不要先查再扣&#xff0c;直接扣扣扣&#xff0c;扣到负数&#xff0c;&#xff08;增改就直接在kv里做&#xff09;&#xff0c;就说明超卖了&#xff0c;回滚刚才的扣减 3. 同时写MQ&…

vue中打印指定dom元素

和window.print()效果一样&#xff0c;调出打印窗口&#xff0c;只是当前使用的插件是vue-print-nb 官网地址&#xff1a;vue-print-nb vue2中使用 安装插件 npm install vue-print-nb --save导入插件 import Print from vue-print-nb // 全局使用 Vue.use(Print);//or// 单…

如何确保ChatGPT的文本生成对特定行业术语的正确使用?

确保ChatGPT在特定行业术语的正确使用是一个重要而复杂的任务。这涉及到许多方面&#xff0c;包括数据预处理、模型训练、微调、评估和监控。下面我将详细介绍如何确保ChatGPT的文本生成对特定行业术语的正确使用&#xff0c;并探讨这一过程中的关键考虑因素。 ### 1. 数据预处…

JVM类加载机制

目录 一、Java为什么是一种跨平台的语言&#xff1f; 二、Java代码的执行流程 解释执行为主&#xff0c;编译执行为辅&#xff1a; 三、类加载的过程 3.1、加载 类加载器&#xff08;就是加载类的&#xff09;分为&#xff1a; 3.1.1、启动类加载器&#xff08;Bootstrap…

UMA 2 - Unity Multipurpose Avatar☀️三.给UMA设置默认服饰Recipes

文章目录 🟥 项目基础配置🟧 给UMA配置默认服饰Recipes🟨 设置服饰Recipes属性🟥 项目基础配置 将 UMA_DCS 预制体放到场景中创建空物体,添加DynamicCharacterAvatar 脚本,选择 HumanMaleDCS作为我们的基本模型配置默认Animator 🟧 给UMA配置默认服饰Recipes 服饰Re…

回归预测 | MATLAB实现PCA-BP主成分降维结合BP神经网络多输入单输出回归预测

回归预测 | MATLAB实现PCA-BP主成分降维结合BP神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现PCA-BP主成分降维结合BP神经网络多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 MATLAB实现PCA-BP主成分降维算法结合BP神经网络多输入单输出回…

Linux命令(78)之read

linux命令之read 1.read介绍 linux命令read用来接收键盘或其它文件的输入&#xff0c;得到输入后&#xff0c;read命令将接收的数据放入到标准变量中。 2.read用法 read [参数] [变量名称] read常用参数 参数说明-p后面跟提示信息-e可以使用命令补全功能-n输入文本的长度-s…

【数据结构】串

串 串的顺序实现简单的模式匹配算法KMP算法KMP算法的进一步优化 串的顺序实现 初始化 #define MaxSize 50 typedef char ElemType;//顺序存储表示 typedef struct{ElemType data[MaxSize];int length; }SString;/*** 初始化串*/ void InitString(SString *string) {for (int …

点云从入门到精通技术详解100篇-基于车载激光点云的道路标线提取及分类方法

目录 前言 车载 LiDAR 技术基础理论 2.1 车载 LiDAR 系统组成 2.2 车载 LiDAR 系统工作原理

Python基础continue和break关键字

continue 和 break 关键字 continue 含义&#xff1a;表示跳过本次循环&#xff0c;继续下次循环 注意&#xff1a;continue在while循环中不可以使用 例子&#xff1a; for i in range(5): if i 3: continue else: print(i) #结果为0,1,2,4 当i 3的时候&#xff0c;跳…

变压器耐压试验电压及电源容量的计算

被试变压器的额定电压为&#xff08;11081. 25%&#xff09; /10. 5kV&#xff0c; 联接组标号为 YNd11。 试验时高压分接开关置于第 1 分接位置&#xff0c; 即高压侧电压为 126kV&#xff0c; 高、 低压电压比 K1126/&#xff08;√310. 5&#xff09; 6. 93。 现以 A 相试验…

Cmake入门(一文读懂)

目录 1、Cmake简介2、安装CMake3、CMakeLists.txt4、单目录简单实例4.1、CMakeLists.txt4.2、构建bulid内部构建外部构建 4.3、运行C语言程序 5、多目录文件简单实例5.1、根目录CMakeLists.txt5.2、源文件目录5.3、utils.h5.4、创建build 6、生成库文件和链接外部库文件7、注意…

Mysql5.7(Docker环境)实现主从复制

文章目录 前言一、MySQL主从数据库同步如何实现&#xff1f;(理论)1.1 为什么要使用数据库主从1.2 数据库主从实现原理是什么&#xff1f; 二、Docker环境配置MySQL5.7主从(实践)2.1 配置安装Master2.2 配置安装Slave 前言 本文章将以MySQL5.7版本来讲诉MySQL主从复制的原理以…

centos 编译安装的php多版本 切换

centos 编译安装的php多版本 切换 wheris php php: /usr/bin/php /usr/lib64/php /etc/php.ini /etc/php.d /usr/local/php /usr/local/php7.4 /usr/share/php /usr/share/man/man1/php.1.gz/usr/bin/php: php可执行脚本&#xff0c;任何版本的php 通过软连接到这可以实现全局…

STM32CubeMX systick bug?

发觉用新版&#xff08;V6.9.1&#xff09;的它生成代码&#xff0c;会有问题。可能是 BUG。具体如下&#xff1a; 一个简单的点灯程序&#xff0c;用 Keil MDK 5.38a&#xff08;compiler version 6&#xff09;编译。 如果在变量前&#xff0c;不加上关键字“volatile”&am…

VEX —— Functions|Geometry

目录 geoself —— 返回当前几何体的handle addpoint —— 添加点到几何体 addprim —— 添加面到几何体 addvertex —— 添加一顶点到面 minpos —— 查找点离几何体表面最近的位置 nearpoint —— 查找离几何体最近的点 nearpoints —— 查找离几何体所有最近的点 ne…

【计算机网络】UDP数据包是如何在网络中传输的?

List item 创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多计算机网络知识专栏&#xff1a;计算机网络&#x1f525;…

Vue项目使用axios配置请求拦截和响应拦截以及判断请求超时处理提示

哈喽大家好啊&#xff0c;最近做Vue项目看到axios axios官网&#xff1a;起步 | Axios 中文文档 | Axios 中文网 (axios-http.cn)​​​​​​ 重要点&#xff1a; axios是基于Promise封装的 axios能拦截请求和响应 axios能自动转换成json数据 等等 安装&#xff1a; $ npm i…

树莓派搭建K8S集群

最近学习k8s知识&#xff0c;想用树莓派搭建集群&#xff0c;在网找了不少&#xff0c;就发现一篇文章可以搭建成功香橙派4和树莓派4B构建K8S集群实践之一&#xff1a;K8S安装&#xff0c;参考了不少&#xff0c;这里主要记录下遇到的一些问题&#xff0c;参考的文章&#xff0…