1266. Minimum Time Visiting All Points

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;
    }
};             
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容