[LeetCode] Minimum Time Visiting All Points

1266. Minimum Time Visiting All Points

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:

  • In 1 second, you can either:

    • move vertically by one unit,

      • move horizontally by one unit, or

      • move diagonally sqrt(2) units (in other words, move one unit vertically then one unit horizontally in 1 second).

  • You have to visit the points in the same order as they appear in the array.

  • You are allowed to pass through points that appear later in the order, but these do not count as visits.

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
int helper(vector<int>& p1, vector<int>& p2) {
return max(abs(p1[0] - p2[0]), abs(p1[1] - p2[1]));
}
public:
int minTimeToVisitAllPoints(vector<vector<int>>& points) {
int res = 0;
for(int i = 1; i < points.size(); i++) {
res += helper(points[i-1], points[i]);
}
return res;
}
};
Author: Song Hayoung
Link: https://songhayoung.github.io/2023/12/03/PS/LeetCode/minimum-time-visiting-all-points/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.