LeetCode:1266.访问所有点的最小时间

题目:

平面上有 n 个点,点的位置用整数坐标表示 points[i] = [xi, yi]。请你计算访问所有这些点需要的最小时间(以秒为单位)。

你可以按照下面的规则在平面上移动:

每一秒沿水平或者竖直方向移动一个单位长度,或者跨过对角线(可以看作在一秒内向水平和竖直方向各移动一个单位长度)。
必须按照数组中出现的顺序来访问这些点。

源码:

class Solution {
    public int minTimeToVisitAllPoints(int[][] points) {
        int count = 0; // 计算总共需要的时间
        for (int i = 0; i < points.length - 1; i++) {
            // 计算第i+1个坐标点的横轴和第i个坐标点的横轴差值的绝对值
            int x = Math.abs(points[i + 1][0] - points[i][0]);
            // 计算第i+1个坐标点的纵轴和第i个坐标点的纵轴差值的绝对值 
            int y = Math.abs(points[i + 1][1] - points[i][1]);
            if (x >= y) {
                // 横轴和纵轴的差值绝对值之间比较大小
                // 因为谁的值越大要移动的时间就越多
                count += x;
            } else {
                count += y;
            }
        }
        return count;
    }
}
发布了340 篇原创文章 · 获赞 2 · 访问量 8310

猜你喜欢

转载自blog.csdn.net/qq_45239139/article/details/103941170