1. 题目链接:
https://leetcode.com/problems/minimum-time-visiting-all-points/
2. 题目关键词
- 难度等级:easy
- 关键词: 坐标
- 语言: C++
3. 解题思路
遍历多个坐标,实际上:可归类为两两坐标间的路径问题。
对于两个坐标的走法,可分为对角线走 和 竖直/水平方向走。
class Solution {
public:
int minTimeToVisitAllPoints(vector<vector<int>>& points) {
int pointNum = points.size();
int count = 0;
for (int i =0; i < pointNum - 1; i++) {
int x1 = points[i][0];
int y1 = points[i][1];
int x2 = points[i + 1][0];
int y2 = points[i + 1][1];
x1 = abs(x1 - x2);
y1 = abs(y1- y2);
int diaLen = min(x1, y1); // 走对角线的次数
int straightLen = abs(x1 - y1); // 走水平 和 竖直方向的次数
count += diaLen + straightLen;
}
return count;
}
};