• 蘑菇街2016校园招聘第一个编程题


     1 /*
     2  * 蘑菇街2016校园招聘第一个编程题
     3  *求一个数列删除从下标1,n-2的一个元素之后的最大差值的最小值
     4  最大差值的定义是:a1<a2<...an
     5  max= max(ai+1-ai)
     6      1<=i<=n-1
     7  */
     8 #include<iostream>
     9 using namespace std;
    10 
    11 //对数组进行排序
    12 void sort(int *arr,int n){
    13     int tmp;
    14     for(int i=0;i<n;i++){
    15         for(int j=i+1;j<n;j++){
    16             if(arr[j]<arr[i]){
    17                 tmp=arr[i];
    18                 arr[i]=arr[j];
    19                 arr[j]=tmp;
    20             }
    21         }
    22     }
    23 }
    24 //获取一个数组的最大差值
    25 int get_max(int* arr,int n){
    26     int b[n-1];
    27     for(int i=1;i<n;i++){
    28         b[i-1]=arr[i]-arr[i-1];
    29     }
    30     sort(b,n-1);
    31     return b[n-2];
    32 }
    33 
    34 /*
    35  * 取得一个数组中的最大差值,最后一个参数表示
    36  * 除去数组中的第x个元素,x!=1~n-2时,表示求
    37  * 整个数组的最大插值
    38  */
    39 int get_max(int *arr,int n,int pos){
    40     if(pos==0||pos=n-1){
    41         return get_max(arr,n);
    42     }
    43     else{
    44         int b[n-1];
    45         for(int i=0;i<n;i++){
    46             if(i<pos){
    47                 b[i]=arr[i];
    48             }
    49             else{
    50                 b[i]=arr[i+1];
    51             }
    52         }
    53         return get_max(b,n-1);
    54     }
    55 }
    56 
    57 
    58 int fun(int* arr,int n){
    59     int c[n-2];
    60     for(int i=1;i<n-1;i++){
    61         c[i-1]=get_max(arr,n,i);
    62     }
    63     sort(c,n-2);
    64     return c[0];
    65 }
    66 
    67 int print_arr(int *arr,int n){
    68     for(int i=0;i<n;i++){
    69         cout<<arr[i]<<" ";
    70     }
    71     cout<<endl;
    72 }
    73 
    74 int main(){
    75     int n;
    76     cin>>n;
    77     int arr[n];
    78     for(int i=0;i<n;i++){
    79         cin>>arr[i];
    80     }
    81     print_arr(arr,n);
    82     cout<<"The result is:"<<endl;
    83     cout<<fun(arr,n)<<endl;;
    84     return 0;
    85 }
  • 相关阅读:
    Linux下目录的权限详解
    Linux下mknod详解
    迅雷精简版-无广告
    PotPlayer一款简洁好用的播放器
    Linux 信号signal处理机制
    Kruskal算法求最小生成树
    Prim算法求权数和,POJ(1258)
    Prim算法求最大权,POJ(2485)
    Prim算法
    DP找最优配置,(POJ1018)
  • 原文地址:https://www.cnblogs.com/guozhijiang/p/4822283.html
Copyright © 2020-2023  润新知