zoukankan      html  css  js  c++  java
  • 2、度度熊回家--百度2017春招

    [编程题] 度度熊回家
    时间限制:1秒
    空间限制:32768K
    一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。
    但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离? 
    输入描述:
    输入一个正整数N, N <= 50。
    接下来N个整数表示坐标,正数表示X轴的正方向,负数表示X轴的负方向。绝对值小于等于100
     
     
    输出描述:
    输出一个整数表示度度熊最少需要走的距离。
     
    输入例子:
    4 1 4 -1 3
     
    输出例子:
    4
     
    解题思路:本题分别求删除第一个点到第n-2个点的distance 然后选出最小的distance
    1)采用两层循环,第一层控制删除的点从1-n-2 第二层循环j从1到n-1 求出从0-n-1去掉删除的点的distance
    2)其中用k记录当前位置的前一个位置的索引(用k记录原因为可能为j-1 或者j-2 如果j-1删除了则为j-2)
    3)使用min_dis记录最小的距离值
    注意点:每次二层循环时,记得中间变量distance  以及 k  的重置操作
     
     1 #include <iostream>
     2 #include <cmath>
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     int n;
     8     while(cin>>n)
     9     {
    10         int a[n];
    11         for(int i=0;i<n;i++)
    12         {
    13             cin>>a[i];
    14         }
    15         int min_dis = 0;
    16         int distance = 0;
    17         int k = 0;//记录上一位置
    18         //从i=1 到i=n-2 每次删除一个
    19         for(int i=1;i<=n-2;i++)
    20         {
    21             distance = 0;
    22             k = 0;
    23             for(int j=1;j<n;j++)
    24             {
    25                 if(j == i)//跳过删除那个点的计算
    26                 {
    27                     continue;
    28                 }
    29                 distance += abs(a[j]-a[k]);//两点之间距离的算法
    30                 k = j;
    31             }
    32             if(i==1)//最开始的第一个distance赋给min_dis
    33             {
    34                 min_dis = distance;
    35             }
    36             //之后distance<min_dis才赋值
    37             if(distance < min_dis)
    38                 min_dis = distance;
    39         }
    40         cout<<min_dis<<endl;
    41     }
    42     return 0;
    43 }
     
  • 相关阅读:
    异常
    JAVA Math类
    Spring Cloud微服务Sentinel+Apollo限流、熔断实战总结
    JAVA之JDBC数据库连接池总结篇
    利用Python-docx 读写 Word 文档中的正文、表格、段落、字体等
    python3 最基本且简单的实现组合设计模式
    原生工程接入Flutter实现混编
    a[i][j] 和 a[j][i] 有什么区别?
    iconv函数报错 Detected an illegal character in input string
    用Python把20年的GDP、人口以及房价数据进行了可视化
  • 原文地址:https://www.cnblogs.com/qqky/p/6894549.html
Copyright © 2011-2022 走看看