题目
1266. Minimum Time Visiting All Points
解题方法
取数组中第一个点作为起点,设置一个返回值rat做累加,每次循环时rat加上新点到旧点的x、y方向上的距离的最大值,因为在平面上无论向x、y哪个方向走,由于可以走对角线,所以一定是距离更长的一个方向上需要单独走几秒钟,而距离较短的那个方向就会在走对角线时被涵盖在内了。累加后再更新当前位置到新的位置即可。
时间复杂度:O(n)
空间复杂度:O(1)
代码
class Solution:
def minTimeToVisitAllPoints(self, points: List[List[int]]) -> int:
x, y = points[0][0], points[0][1]
rat = 0
for i in points:
rat += max(abs(i[0] - x), abs(i[1] - y))
x, y = i[0], i[1]
return rat