• 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 }
     
  • 相关阅读:
    AJ学IOS(26)UI之iOS抽屉效果小Demo
    AJ学IOS(25)UI之触摸事件
    AJ学IOS(24)UI之注册案例
    AJ学IOS(23)UI之控制器管理
    AJ学IOS(22)UI之UIApplicationDelegate和UIWindow
    AJ学IOS(21)UIApplication设置程序图标右上⾓红⾊数字_联⺴指⽰器等
    AJ学IOS(20)UI之UIPickerView_点菜系统
    AJ学IOS(19)UI之QQ好友列表
    AJ学IOS(18)UI之QQ聊天布局_键盘通知实现自动弹出隐藏_自动回复
    AJ整理问题之:copy,对象自定义copy 什么是property
  • 原文地址:https://www.cnblogs.com/qqky/p/6894549.html
Copyright © 2020-2023  润新知