最近,小L遇到了一道难题,请你帮帮他。

给出n个数,请找出这个序列的任意两个不同的数第二小的差值。ai​和 aj​的差值定义为∣ai​−aj​∣,即两个数差的绝对值,其中i和j互不相同。(第二小即从小到大排序之后的第二个数字)

输入格式:

第一行为一个正整数n (3≤n≤105),代表数组的长度。

接下来一行,共n个整数ai​(−109≤ai​≤109)。

输出格式:

输出一个数字,表示这个序列的任意两个不同的数中第二小的差值。

样例1

样例输入

6
11 4 7 1 16 2

结尾无空行

样例输出

2

结尾无空行

样例2

样例输入

6
10 1 2 4 15 6

结尾无空行

样例输出

2

结尾无空行

样例3

样例输入

6
6 8 10 4 3 2

结尾无空行

样例输出

1

结尾无空行

#include<stdio.h>
int a[100010],b[100010];
int gb(int r[],int s[],int left,int mid,int right)
{
    int i,j,k;
    i=left,j=mid+1;k=left;
    while(i<=mid&&j<=right)
    {
        if(r[i]<=r[j])
            s[k++]=r[i++];
        else
            s[k++]=r[j++];
    }
    while(i<=mid)
        s[k++]=r[i++];
    while(j<=right){
        s[k++]=r[j++];
    }
        return 0;
}
int gb_1(int r[],int s[],int left,int right)
{
    int mid,t[100010];
    if(left==right)
        s[left]=r[right];
    else{
        mid=(left+right)/2;
        gb_1(r,t,left,mid);
        gb_1(r,t,mid+1,right);
        gb(t,s,left,mid,right);
    }
    return 0;
}
int main()
{
    int n;
    scanf("%d",&n);
    getchar();
    for(int i=0;i<n;i++)
        scanf("%d",&a[i]);
    gb_1(a,a,0,n-1);
    for(int i=0;i<n-1;i++)
        b[i]=a[i+1]-a[i];
    gb_1(b,b,0,n-2);
    printf("%d\n",b[1]);
    return 0;
}

7-3 小L的难题 (15 分)相关推荐

  1. 联想小新14用来学计算机,联想小新Air14/Pro13/15分不清楚 看完这些你就懂了

    联想小新在2020年共推出了Air 14.Pro 13以及15三款笔记本,这就使消费者们困惑起来,纠结这三款电脑有什么区别,哪个好?那么下面就来了解一下这三款电脑有什么区别. 首先说小新Pro系列的电 ...

  2. 小航走台阶 (15 分)

    在小航学校,有一个很长很长的楼梯,小航每次上课都会经过那个楼梯.小航发现他的步子一次可以一步台阶,或者两步台阶.小航想知道一共有多少种走法. 输入格式: 输入在第一行中给出1个整数n (0<n& ...

  3. 【NOIP模拟题】【DP】【同余最短路】【暴力剪枝】2016.11.15 第二题 小L的牛栏 题解

    小L的牛栏 [题目描述] 小L通过泥萌的帮助,成功解决了二叉树的修改问题,并因此写了一篇论文, 成功报送了叉院(羡慕不?).勤奋又勤思的他在研究生时期成功转系,考入了北京大学光华管理学院!毕业后,凭着 ...

  4. 【NOIP模拟题】【DP】【LIS】【中缀表达式】2016.11.15 第一题 小L的二叉树 题解

    小L的二叉树 小L的二叉树 题目背景 勤奋又善于思考的小L接触了信息学竞赛,开始的学习十分顺利.但是,小L对数据结构的掌握实在十分渣渣. 所以,小L当时卡在了二叉树. [题目描述] 在计算机科学中,二 ...

  5. 天梯赛 L1-025 正整数A+B (15 分) 小坑不断

    天梯赛 L1-025 正整数A+B (15 分) 小坑不断 题目 题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000].稍微有点麻烦的是,输入并不保证是两个正整数. 输入格式 ...

  6. 基础编程题目集(15 分题)

    基础编程题目集(15 分题) 7-1 厘米换算英尺英寸 (15 分) 如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048.现在,如果用户输入的是 ...

  7. PTA天梯赛L1刷题总结(三)15分题型(超详细题解)

    多么感人!时隔一年多,我终于来更新15分题型的博文了.突然发现L1的题目量扩充了!一共有哦20道题.哎~都写一遍题解好了.在这里推荐下胡凡的算法笔记!在基础算法和数据结构上给了我很多细致的讲解启发.过 ...

  8. 洛谷U4727小L的二叉树[树转序列 LIS]

    题目背景 勤奋又善于思考的小L接触了信息学竞赛,开始的学习十分顺利.但是,小L对数据结构的掌握实在十分渣渣. 所以,小L当时卡在了二叉树. 题目描述 在计算机科学中,二叉树是每个结点最多有两个子结点的 ...

  9. 习题2.5 两个有序链表序列的合并 (15 分)

    习题2.5 两个有序链表序列的合并 (15 分) 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列. 函数接口定义: List Merge( List L1, List L ...

  10. 习题2.4 递增的整数序列链表的插入 (15 分)

    习题2.4 递增的整数序列链表的插入 (15 分) 本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性. 函数接口定义: List Insert( List ...

最新文章

  1. 大话设计模式笔记(七)の原型模式
  2. Veeam在思科2017年合作伙伴峰会上荣获ISV年度最佳合作伙伴全球奖
  3. win7下nsis打包exe安装程序教程
  4. IPC 和 RPC (呵呵,我感觉我应该要钻研到这个深度啦)
  5. hive 中窗口函数row_number,rank,dense_ran,ntile分析函数的用法
  6. Android Studio之查找当前类的位置图标没了
  7. Author Topic Model[ATM理解及公式推导]
  8. 模板类成员函数特例化写法
  9. Eclipse debug ‘Source not found’
  10. hive中的集合操作函数
  11. Centos7.6环境使用kubeadm部署kubernetes1.18.4
  12. 打开方式怎么用计算机程序,设置电脑默认软件打开方式的方法
  13. ATSC数字电视标准 1
  14. java switch贯穿_Java Switch语句贯穿问题
  15. 声明式导航与编程式导航
  16. 前端开发人员的精彩文字
  17. Genero BDL 数据类型(1)
  18. kali Linux渗透测试黑客专用系统命令
  19. 使用AMD显卡安装tch-rs(Rust版Pytorch)
  20. 什么人会成为神样的程序员:

热门文章

  1. Android boot.img system.img ramdisk.img的解释
  2. 【静态化平台】☞( 一)网页静态化服务
  3. 【C语言入门教程】4.7 指针的地址分配 - mallocl(), free()
  4. 要想混得好,必须认识21个人!
  5. vsftpd+mysql使用
  6. XFire+spring 发布webservice 及其客户端调用程序
  7. 从华住遭遇“抄袭” 看酒店行业互联网发展现状
  8. Stream上传插件(Java接口实现)
  9. linux注册节点报错,Linux 运维4月17日 5.102-5.103
  10. 十六进制转十进制_跟运维组学Python之秒懂十六进制