前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode 1266. 访问所有点的最小时间(数学)

LeetCode 1266. 访问所有点的最小时间(数学)

作者头像
Michael阿明
发布2020-07-13 16:19:02
4720
发布2020-07-13 16:19:02
举报

1. 题目

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

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

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

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
输入: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 秒

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

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/minimum-time-visiting-all-points 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 发现移动步数就是
dis = max(|x_1-x_2|,|y_1-y_2|)
代码语言:javascript
复制
class Solution {
public:
    int minTimeToVisitAllPoints(vector<vector<int>>& points) {
    	int i, prex = points[0][0], prey = points[0][1], dis = 0;
        for(i = 1; i < points.size(); ++i)
        {
        	dis += max(abs(prex - points[i][0]),abs(prey - points[i][1]));
        	prex = points[i][0];
        	prey = points[i][1];
        }
        return dis;
    }
};
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-11-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 题目
  • 2. 解题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档