C ++中访问所有点的最短时间
假设有一些点作为数组给出。我们必须找到访问所有地点的最短时间(以秒为单位)。有一些条件。
一秒钟内,它可以垂直,水平和对角移动
我们必须按照数组中出现的顺序访问这些点。
因此,如果点是[[(1,1),(3,4),(-1,0)],则输出将为7。如果我们检查最短路径的序列,则序列将为(1、1),(2、2),(3、3),(3、4),(2、3),(1、2),(0、1),(-1、0)
为了解决这个问题,我们将找到两个连续点的x坐标差的最大值和两个连续点的y坐标差的最大值。最大值将被加在一起。
示例
让我们看下面的实现以更好地理解-
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int minTimeToVisitAllPoints(vector<vector<int>>& p) {
int ans = 0;
int n = p.size();
for(int i = 1; i < n; i++){
ans += max(abs(p[i][0] - p[i-1][0]), abs(p[i][1] - p[i-1] [1]));
}
return ans;
}
};
main(){
Solution ob;
vector<vector<int>> c = {{1,1},{3,4},{-1,0}};
cout << ob.minTimeToVisitAllPoints(c);
}输入值
[[1,1],[3,4],[-1,0]]
输出结果
7
热门推荐
3 祝福语简短的微信
10 幼儿祝福语大全简短贺卡
11 感谢教官文案祝福语简短
12 鼠年同事祝福语简短创意
13 元旦祝福语 简短独特群发
14 妈咪跟我生日祝福语简短
15 给儿子新婚祝福语简短
16 伴娘祝福语长文案简短
17 恭喜高考完祝福语简短
18 生日祝福语送老公简短