leecode 1266-访问所有点的最小时间

解题思路:

虽然有点暴力,但结果总算是好的。

相邻两点之间需要的时间是:

分别求出横坐标与纵坐标的差值,因为时间,所以取绝对值。然后比较横坐标差值与纵坐标差值,如果横坐标比较大,则时间=纵坐标+(横坐标-纵坐标)。因为它

沿对角方向移动之后,还需要再移动相应的(横坐标-纵坐标)的距离才能到达;如果纵坐标比较大,则时间=横坐标+(纵坐标+横坐标)。如果横坐标与纵坐标相等,

则时间=横坐标差值或者纵坐标差值。


完整代码:



#include <iostream>

#include <vector>

#include <math.h>

using namespace std;

int main(){

    int a,b;

   vector<vector <int>> points;

    int i,j,n;

    cin>>n;   //总共的点数

    vector<int> p;

    for(i=0; i<n; i++){

        cin>>a;  //输入x坐标

        p.push_back(a);

        cin>>b;  //输入y坐标

        p.push_back(b);

        points.push_back(p);

        p.clear();

    }

    int stime=0,time=0,timex=0,timey=0;  //stime:总时间; timex:横坐标差  timey:纵坐标差

    for(i=0; i<points.size()-1; i++){

            timex=abs(points[i][0]-points[i+1][0]);

            timey=abs(points[i][1]-points[i+1][1]);

            if(timex>timey){

                time=timey+(timex-timey);

            }

            if(timex<timey){

                time=timex+(timey-timex);

            }

            if(timex==timey){

                time=timex;

            }

            cout<<time<<endl;

            stime+=time;

    }

   cout<<stime<<endl;

    return stime;

}


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • thiele插值算法 1点插值算法 function [C,c]=thiele(X,Y,Z)%X为插值点横坐标,Y...
    00crazy00阅读 6,281评论 0 4
  • /**转载自https://blog.csdn.net/xiaoxiaowenqiang/article/deta...
    Maxsium阅读 3,911评论 0 0
  • 目录faster rcnn论文备注caffe代码框架简介faster rcnn代码分析后记 faster rcnn...
    db24cc阅读 13,222评论 2 12
  • 上一篇博客介绍了最小二乘法拟合圆的方法。这种方法对误差符合正态分布的数据点很有效。但是在机器视觉应用中经常会碰到一...
    北风知我意阅读 5,412评论 0 1
  • 呼伦湖 这里是草原吗?我明明看到的是透明清澈的湖。 这是草原的眼泪吗?是人们把草原踩疼了?还是清晨的喧嚣把草原喊醒...
    重庆风铃阅读 1,751评论 0 0

友情链接更多精彩内容