Go语言题解LeetCode1266访问所有点的最小时间示例
作者:刘09k11 发布时间:2023-08-29 08:10:39
标签:Go,LeetCode,访问点,最小时间
题目描述
1266. 访问所有点的最小时间 - 力扣(LeetCode)
平面上有 n
个点,点的位置用整数坐标表示 points[i] = [xi, yi]
。请你计算访问所有这些点需要的 最小时间(以秒为单位)。
你需要按照下面的规则在平面上移动:
每一秒内,你可以:
沿水平方向移动一个单位长度,或者
沿竖直方向移动一个单位长度,或者
跨过对角线移动 sqrt(2) 个单位长度(可以看作在一秒内向水平和竖直方向各移动一个单位长度)。
必须按照数组中出现的顺序来访问这些点。
在访问某个点时,可以经过该点后面出现的点,但经过的那些点不算作有效访问。
示例 1:
输入:points = [[1,1],[3,4],[-1,0]]
输出:7
解释:一条最佳的访问路径是: [1,1] -> [2,2] -> [3,3] -> [3,4] -> [2,3] -> [1,2] -> [0,1] -> [-1,0]
从 [1,1] 到 [3,4] 需要 3 秒
从 [3,4] 到 [-1,0] 需要 4 秒
一共需要 7 秒
示例 2:
输入:points = [[3,2],[-2,2]]
输出:5
提示:
points.length == n
1 <= n <= 100
points[i].length == 2
-1000 <= points[i][0], points[i][1] <= 1000
思路分析
根据题意和图可知道
如果两点的x,y值的差值的绝对值相等
则绝对值就是用的时间,如果绝对值不相等
则时间为x,y的差值中的绝对值较小的一个值再加上大的差值减去小的差值的差
AC 代码
class Solution {
public int minTimeToVisitAllPoints(int[][] points) {
// 会用到的时间
int time = 0;
// 上一个点的位置
int[] prev = null;
// 遍历数组
for (int[] item : points) {
// 只有上个点有数据才处理
if (!Objects.isNull(prev)) {
// 获取到x,y坐标的值
int xValN = item[0];
int yValN = item[1];
int xValP = prev[0];
int yValP = prev[1];
// 取到差值的绝对值
int xDifference = getAbsoluteValue(xValN - xValP);
int yDifference = getAbsoluteValue(yValN - yValP);
// 取差值的最小值
int minValue = Math.min(xDifference, yDifference);
// 取x,y坐标差值的差值的绝对值
int moreValue = getAbsoluteValue(xDifference - yDifference);
// 累加时间
time += (minValue + moreValue);
}
// 给上个点赋值
prev = item;
}
return time;
}
private int getAbsoluteValue(int value) {
return value > 0 ? value : (value * -1);
}
}
来源:https://juejin.cn/post/7182934313736863781
0
投稿
猜你喜欢
- 自打 Lokesh Dhakar 创造了第一个lightbox应用以来, 相册和弹出窗口方式便跨进了新的时代, 甚至那些lightbox应用
- 假如你拥有一个庞大的网站,内容又多,那么来访者往往很难找到自己所需要的东东,这时候你就需要一个站内搜索来帮助来访者更快的找到索要的资料了!现
- 1、为什么淘宝的手机频道页面,竟然会有笔记本、数码相机、随身听,甚至是游戏之类的栏目,而且还有一个“数码·生活”栏目是包括以上这些设备的综合
- /* * Date Format 1.2.3 * (c) 2007-2009 Steven Levithan * MIT license *
- 在微软的ASP编程体系中,ADO对象的建立,使得从网页访问数据库成为一件易事,特别是ADO的Recordset对象使得控制数据的输出显示更为
- 本文实例为大家分享了H5+css3+js搭建带验证码的登录页面,供大家参考,具体内容如下login.html<!DOCTYPE HTM
- 安装pillow(python的图形界面库)第一种方法在Dos界面输入pip install pillow(但是不知为何总是失败);搞了好几
- MySQL、SQL Server和mSQL都是绝佳的SQL工具,可惜,在ASP的环境下你却用不着它们来创建实用的SQL语句。不过,你可以利用
- Python通过yield提供了对协程的基本支持,但是不完全。而第三方的gevent为Python提供了比较完善的协程支持。gevent是第
- 继续上一篇,针对Bootstrap Metronic菜单栏整理的笔记分享给大家,供大家参考,具体内容如下1.简介1) .环境配置
- parent.html 中的代码为:<iframe marginwidth="0"
- 在这个星期Doug Bowman离开谷歌的Twitter引发了很多激烈的讨论.在残酷的诚实邮件中,Doug Bowman援引谷歌”限制性的数
- 看了OReilly.JavaScript.The.Definitive.Guide.5th.Edition.Aug.2006里的cookie
- 1069错误(由于登录失败而无法启动服务)解决方法在本版面出现这个问题的频率也算是很高的了,新手通常会比较多遇到这个问题原因很简单,安装SQ
- 人常常感受到色彩对自己心理的影响,这些影响总是在不知不觉中发挥作用,左右我们的情绪。色彩的心理效应发生在不同层次中。有些属直接的刺激,有些要
- 前言登录跳转:不同的用户在登录成功之后跳转到不同的网页当中例如:网站管理员登录成功后跳转到网站后台,vip用户登录成功后跳转到vip页面准备
- 数据库安全性问题一直是围绕着数据库管理员的恶梦,数据库数据的丢失以及数据库被非法用户的侵入使得数据库管理员身心疲惫不堪。围绕数据库的安全性问
- 可用下列代码实现:<% set conn=server.creatobject("ADODB
- 代码如下:--销售冠军 --问题:在公司中,老板走进来,要一张每个地区销量前3名的销售额与销售员的报表 --- create t
- 在做DHTML时,我们在某些情况下要用setAttribute(attri, value)方法定义元素的attribute。同时与getAt