leetcode 1266. 访问所有点的最小时间 简单

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

你需要按照下面的规则在平面上移动:

  • 每一秒内,你可以:
    • 沿水平方向移动一个单位长度,或者
    • 沿竖直方向移动一个单位长度,或者
    • 跨过对角线移动 sqrt(2) 个单位长度(可以看作在一秒内向水平和竖直方向各移动一个单位长度)。
  • 必须按照数组中出现的顺序来访问这些点。
  • 在访问某个点时,可以经过该点后面出现的点,但经过的那些点不算作有效访问。

示例 1:

复制代码
输入:points = [[1,1],[3,4],[-1,0]]
输出:7
解释:一条最佳的访问路径是: [1,1] -> [2,2] -> [3,3] -> [3,4] -> [2,3] -> [1,2] -> [0,1] -> [-1,0]   
从 [1,1] 到 [3,4] 需要 3 秒 
从 [3,4] 到 [-1,0] 需要 4 秒
一共需要 7 秒

示例 2:

复制代码
输入:points = [[3,2],[-2,2]]
输出:5

提示:

  • points.length == n
  • 1 <= n <= 100
  • points[i].length == 2
  • -1000 <= points[i][0], points[i][1] <= 1000

分析:由于题目限定是两个相邻点,因此每次计算相邻点的移动时间再求和即可。两点之间的最短移动时间就是它们横坐标之差、纵坐标之差的较大值。

cpp 复制代码
int minTimeToVisitAllPoints(int** points, int pointsSize, int* pointsColSize) {
    int ans=0;
    for(int i=1;i<pointsSize;++i)
    {
        int ver=abs(points[i][1]-points[i-1][1]);
        int hor=abs(points[i][0]-points[i-1][0]);
        ans+=fmax(ver,hor);
    }
    return ans;
}
相关推荐
怪兽学LLM2 小时前
LeetCode 21 合并两个有序链表:彻底理解虚拟头节点(Dummy)套路
python·leetcode·链表
_日拱一卒2 小时前
LeetCode:22括号生成
算法·leetcode·职场和发展
洛水水3 小时前
【力扣100题】88.多数元素
数据结构·算法·leetcode
洛水水3 小时前
【力扣100题】87.只出现一次的数字
数据结构·算法·leetcode
风筝在晴天搁浅4 小时前
LeetCode CodeTop 82.删除排序链表中的重复元素Ⅱ
算法·leetcode·链表
洛水水4 小时前
【力扣100题】84.字符串解码
算法·leetcode·职场和发展
洛水水5 小时前
【力扣100题】89.下一个排列
数据结构·算法·leetcode
洛水水5 小时前
【力扣100题】90.寻找重复数
算法·leetcode·职场和发展
alphaTao5 小时前
LeetCode 每日一题 2026/6/8-2026/6/14
算法·leetcode
想吃火锅100515 小时前
【leetcode】14.最长公共前缀js
算法·leetcode·职场和发展