LeetCode #1266. Minimum Time Visiting All Points

题目

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
上一篇:LeetCode #643. Maximum Average Subarray I


下一篇:LeetCode #1380. Lucky Numbers in a Matrix