LeetCode in Kotlin

1266. Minimum Time Visiting All Points

Easy

On a 2D plane, there are n points with integer coordinates points[i] = [xi, yi]. Return the minimum time in seconds to visit all the points in the order given by points.

You can move according to these rules:

Example 1:

Input: points = [[1,1],[3,4],[-1,0]]

Output: 7

Explanation: One optimal path is [1,1] -> [2,2] -> [3,3] -> [3,4] -> [2,3] -> [1,2] -> [0,1] -> [-1,0]

Time from [1,1] to [3,4] = 3 seconds

Time from [3,4] to [-1,0] = 4 seconds

Total time = 7 seconds

Example 2:

Input: points = [[3,2],[-2,2]]

Output: 5

Constraints:

Solution

class Solution {
    fun minTimeToVisitAllPoints(points: Array<IntArray>): Int {
        var minTime = 0
        for (i in 0 until points.size - 1) {
            minTime += chebyshevDistance(points[i], points[i + 1])
        }
        return minTime
    }

    private fun chebyshevDistance(pointA: IntArray, pointB: IntArray): Int {
        return Math.max(Math.abs(pointA[0] - pointB[0]), Math.abs(pointA[1] - pointB[1]))
    }
}