2023-12-03 Daily Challenge
Today I have done leetcode's December LeetCoding Challenge with cpp
.
December LeetCoding Challenge 3
Description
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:<ul> <li>move vertically by one unit,</li> <li>move horizontally by one unit, or</li> <li>move diagonally <code>sqrt(2)</code> units (in other words, move one unit vertically then one unit horizontally in <code>1</code> second).</li> </ul> </li> <li>You have to visit the points in the same order as they appear in the array.</li> <li>You are allowed to pass through points that appear later in the order, but these do not count as visits.</li>
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:
points.length == n
1 <= n <= 100
points[i].length == 2
-1000 <= points[i][0], points[i][1] <= 1000
Solution
class Solution {
public:
int minTimeToVisitAllPoints(vector<vector<int>>& points) {
int answer = 0;
for(int i = 1; i < points.size(); ++i) {
answer += max(abs(points[i][1] - points[i - 1][1]), abs(points[i][0] - points[i - 1][0]));
}
return answer;
}
};
// Accepted
// 122/122 cases passed (3 ms)
// Your runtime beats 95.33 % of cpp submissions
// Your memory usage beats 64.64 % of cpp submissions (10.4 MB)