09 Sept 2026Go / Python / TypeScriptEasy

Minimum Time Visiting All Points

Find the minimum seconds required to visit ordered points while moving horizontally, vertically, or diagonally.

Between two points, diagonal moves cover both axes together, leaving the larger coordinate difference as the exact travel time. Sum that Chebyshev distance.

complexity

O(n) time and O(1) space.

solution files

  • Go minimum-time-visiting-all-points/solution.go
  • Python minimum-time-visiting-all-points/solution.py
  • TypeScript minimum-time-visiting-all-points/solution.ts

Solution files

Gominimum-time-visiting-all-points/solution.go
package main

func minTimeToVisitAllPoints(points [][]int) int {
	time := 0
	for index := 1; index < len(points); index++ {
		dx := points[index][0] - points[index-1][0]
		if dx < 0 {
			dx = -dx
		}
		dy := points[index][1] - points[index-1][1]
		if dy < 0 {
			dy = -dy
		}
		if dx > dy {
			time += dx
		} else {
			time += dy
		}
	}
	return time
}
Pythonminimum-time-visiting-all-points/solution.py
class Solution:
    def minTimeToVisitAllPoints(self, points: list[list[int]]) -> int:
        return sum(max(abs(x2 - x1), abs(y2 - y1)) for (x1, y1), (x2, y2) in zip(points, points[class="syntax-number">1:]))
TypeScriptminimum-time-visiting-all-points/solution.ts
function minTimeToVisitAllPoints(points: number[][]): number {
  let time = class="syntax-number">0; for (let index = class="syntax-number">1; index < points.length; index += class="syntax-number">1) time += Math.max(Math.abs(points[index][class="syntax-number">0] - points[index - class="syntax-number">1][class="syntax-number">0]), Math.abs(points[index][class="syntax-number">1] - points[index - class="syntax-number">1][class="syntax-number">1])); return time;
}