leetcode-164周赛-1266-访问所有点的最小时间

题目描述:

 

 

 自己的解:

class Solution:
    def minTimeToVisitAllPoints(self, points: List[List[int]]) -> int:
        res = 0
        n = len(points)
        if n < 2:
            return res
        pre = points[0]
        for i,v in enumerate(points):
            if i>0:
                res += min(abs(v[1]-pre[1]),abs(v[0]-pre[0])) + abs(abs(v[1]-pre[1])-abs(v[0]-pre[0]))
            pre = v
        return res

优化:

class Solution:
    def minTimeToVisitAllPoints(self, ps: List[List[int]]) -> int:
        n = len(ps)
        ans = 0
        for i in range(n - 1):
            dx = abs(ps[i + 1][0] - ps[i][0])
            dy = abs(ps[i + 1][1] - ps[i][1])
            ans += max(dx, dy)
        return ans

猜你喜欢

转载自www.cnblogs.com/oldby/p/11928621.html