首页 > 其他分享 >[LeetCode] 1266. Minimum Time Visiting All Points

[LeetCode] 1266. Minimum Time Visiting All Points

时间:2023-12-04 13:55:17浏览次数:28  
标签:Visiting int move 1266 最小 seconds Points 移动 points

On a 2D plane, there are n points with integer coordinates points[i] = [xi, yi]. Return the minimum time in seconds to visit all the points in the order given by points.

You can move according to these rules:
In 1 second, you can either:
move vertically by one unit,
move horizontally by one unit, or
move diagonally sqrt(2) units (in other words, move one unit vertically then one unit horizontally in 1 second).
You have to visit the points in the same order as they appear in the array.
You are allowed to pass through points that appear later in the order, but these do not count as visits.

Example 1:
Example 1
Input: points = [[1,1],[3,4],[-1,0]]
Output: 7
Explanation: One optimal path is [1,1] -> [2,2] -> [3,3] -> [3,4] -> [2,3] -> [1,2] -> [0,1] -> [-1,0]
Time from [1,1] to [3,4] = 3 seconds
Time from [3,4] to [-1,0] = 4 seconds
Total time = 7 seconds

Example 2:
Input: points = [[3,2],[-2,2]]
Output: 5

Constraints:
points.length == n
1 <= n <= 100
points[i].length == 2
-1000 <= points[i][0], points[i][1] <= 1000

访问所有点的最小时间。

平面上有 n 个点,点的位置用整数坐标表示 points[i] = [xi, yi] 。请你计算访问所有这些点需要的 最小时间(以秒为单位)。
你需要按照下面的规则在平面上移动:
每一秒内,你可以:
沿水平方向移动一个单位长度,或者
沿竖直方向移动一个单位长度,或者
跨过对角线移动 sqrt(2) 个单位长度(可以看作在一秒内向水平和竖直方向各移动一个单位长度)。
必须按照数组中出现的顺序来访问这些点。
在访问某个点时,可以经过该点后面出现的点,但经过的那些点不算作有效访问。

思路

题目要我们求的是遍历 input 里所有的点所需要的最小时间,而且要按 input 数组里给的顺序。这道题问的最小时间有一点迷惑性,不是要我们求一个最优方案来得到这个最小时间,而是我们必须按照 input 数组里给的点的顺序来依次遍历,所以题目的最小时间其实是需要确保从某个点到下一个点的时间需要最小。

注意题目的定义,横坐标移动一格,纵坐标移动一格,以及对角线方向移动一格,代价都是 1,所以如果从某个点 A 移动到下一个点 B,这个最短距离是两者横坐标的差值纵坐标的差值里较大的那个。在草稿纸上画一下就明白了。

复杂度

时间O(n)
空间O(1)

代码

Java实现

class Solution {
    public int minTimeToVisitAllPoints(int[][] points) {
        int res = 0;
		int n = points.length;
		for (int i = 1; i < n; i++) {
			int[] prev = points[i - 1];
			int[] cur = points[i];
			int xDiff = Math.abs(cur[0] - prev[0]);
			int yDiff = Math.abs(cur[1] - prev[1]);
			res += Math.max(xDiff, yDiff);
		}
		return res;
    }
}

标签:Visiting,int,move,1266,最小,seconds,Points,移动,points
From: https://www.cnblogs.com/cnoodle/p/17874764.html

相关文章

  • influxdb: unable to parse points 异常解决总结
    转载请注明出处:influxdb使用过程经常遇到:unabletoparsepoints 的异常:    unabletoparsepoints是InfluxDB抛出的异常,表示无法解析数据点(points)。这个错误通常与数据格式不匹配或数据字段类型错误有关。可能导致"unabletoparsepoints"错误的原因:1.......
  • 记录一次 maven 子模块相互依赖导致的父模块无法动态升级的问题 'parent.relativePath
        项目里面使用的commons公共模块,每次更改后之前都不会升级其版本号,导致当commons改动后,其他服务在不知道的情况下,会出现文件缺失。由于之前commons下面有12个公共子模块,所以之前一直没有升级commons模块。为了方便,于是决定每次更改commons模块后让所有的子项目都跟着升......
  • org.influxdb.InfluxDBException$UnableToParseException: unable to parse points
    org.influxdb.InfluxDBException$UnableToParseException:unabletoparsepoints是InfluxDB抛出的异常,表示无法解析数据点(points)。这个错误通常与数据格式不匹配或数据字段类型错误有关。为了解决这个问题,你可以按照以下步骤进行调试和修复:检查数据格式:确保要写入InfluxDB的......
  • Educational Codeforces Round 145 (Rated for Div. 2) B. Points on Plane
    给一个二维平面,你需要在上面放\(n\)个芯片。将一个芯片放在\((x,y)\)的代价为\(|x|+|y|\)。放\(n\)个代价的代价为,所有芯片中耗费的最大代价。并且你需要保证任意两个芯片之间的距离严格\(>1\)。现在给出\(n\)给芯片,询问放\(n\)个芯片的最小代价。一:不难想到......
  • sonarqube启动报错:You must address the points described in the following [2] line
    Youmustaddressthepointsdescribedinthefollowing[2]linesbeforestartingElasticsearch.bootstrapcheckfailure[1]of[2]:maxnumberofthreads[3870]foruser[sonar]istoolow,increasetoatleast[4096]bootstrapcheckfailure[2]of[2]:maxvi......
  • 【NIPS2021】Twins: Revisiting the Design of Spatial Attention in Vision Transfor
    来自美团技术团队♪(^∀^●)ノシ论文地址:https://arxiv.org/abs/2104.13840代码地址:https://git.io/Twins一、写在前面 本文提出了两种视觉转换器架构,即Twins-PCPVT和Twins-SVT。Twins-PCPVT将金字塔Transformer模型PVT [2] 中的固定位置编码(PositionalEncoding)更改为团队......
  • E. Power of Points
    E.PowerofPoints题意很简单:从左到右取点,输出该点到每个点的距离之和思路:1.对一个有序的序列进行计算,我们发现从左往右,左边点数的距离会增加,右边点数的距离会减小2.因此我们只需暴力的计算第一个点到所有点的距离之和,接下来的点只需一步就可计算出来2.1ans+=左边的点数之......
  • 解决pycharm报错:_jb_pytest_runner.py:7:....from pkg_resources import iter_entry_p
    遇到问题执行pytest用例出现警告D:\pycharm\PyCharm2020.1.5\plugins\python\helpers\pycharm_jb_pytest_runner.py:7:DeprecationWarning:pkg_resourcesisdeprecatedasanAPI.Seehttps://setuptools.pypa.io/en/latest/pkg_resources.htmlfrompkg_resourcesimport......
  • CF1266D
    原题翻译其实这题的翻译反而不如原题好理解,建议先阅读原题后重新思考做法         \[\large{\color{#ff0000}{\text{分割线}}}\]                        翻译把原来简单的东西复杂了原题的题意是有若......
  • .NET CORE 终端路由中间件 app.UseEndpoints
    publicvoidConfigureServices(IServiceCollectionservices){services.AddControllers();}publicvoidConfigure(IApplicationBuilderapp,IWebHostEnvironmentenv){app.UseRouting();app.UseAuthorization();app.UseEndpoints......