题目描述

自己解法
由题目可知,所要输出的是经过所有点的时间,所以路径方向并不是最关键的,最短时间应该是:两个相邻点x坐标之差的绝对值、y坐标之差的绝对值中较大的一方,Python代码实现:
class Solution:
def minTimeToVisitAllPoints(self, points: List[List[int]]) -> int:
ans = 0
for i in range(1,len(points)):
ans += max(abs(points[i][0]-points[i-1][0]),abs(points[i][1]-points[i-1][1]))
return ans
时间复杂度: O ( n ) O(n) O(n) ;空间复杂度: O ( 1 ) O(1) O(1)

官方解法
与自己解法一致,从点 A A A到点 B B B所需时间其实就是计算两点之间的切比雪夫距离,详细解答参考官方解法,Python代码为:
class Solution:
def minTimeToVisitAllPoints(self, points: List[List[int]]) -> int:
x0, x1 = points[0]
ans = 0
for i in range(1, len(points)):
y0, y1 = points[i]
ans += max(abs(x0 - y0), abs(x1 - y1))
x0, x1 = points[i]
return ans
该博客主要解析了LeetCode第1266题的解决方案,强调了解题思路是计算两点之间的切比雪夫距离以找到最小时间。博主提供了自己的Python实现,时间复杂度为O(n),空间复杂度为O(1),并提及官方解法与个人解法一致。
332

被折叠的 条评论
为什么被折叠?



