ccf201712-1最小差值(100分)

zz/2024/7/17 22:30:13

 ​​​​​​问题描述

  给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。

输入格式

  输入第一行包含一个整数n
  第二行包含n个正整数,相邻整数之间使用一个空格分隔。

输出格式

  输出一个整数,表示答案。

样例输入

5
1 5 4 8 20

样例输出

1

样例说明

  相差最小的两个数是5和4,它们之间的差值是1。

样例输入

5
9 3 6 1 3

样例输出

0

样例说明

  有两个相同的数3,它们之间的差值是0.

数据规模和约定

  对于所有评测用例,2 ≤ n ≤ 1000,每个给定的整数都是不超过10000的正整数。

解题思路

  需要求n个数中相差最小的两个数差值的绝对值。先把n个数排序,这样任意两数之间的差值是最小的,然后遍历求最小差值的绝对值。没啥难度,注意条件就行。

代码段

G++版本

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int a[1005];
int main()
{int n,min,sum,sub;while(cin>>n){for(int i=0;i<n;i++){cin>>a[i];}sort(a,a+n);//排序min=10000;for(int i=1;i<n;i++){sub=a[i]-a[i-1];//求两数之间的差if(min>fabs(sub))min=fabs(sub);}cout<<min<<endl;}return 0;
} 

python版本 

def fabs(num):if(num<0):num=-numreturn num
n=int(input())
a=list(map(int,input().split()))
p=[0 for i in range(n)]
a.sort()
for i in range(1,n):p[i]=a[i]-a[i-1]fabs(p[i])
p.sort()
print(p[1])
#又报数组下标异常了,我就将p这个数组的值全部赋值为0了。n-1个差值和一个0值,
#一共n个值。无论怎么变,最小的差值是0,所以这个0值得位置在排序后在p[0]中。
#那么最小的差值就存储在p[1]中了。

写在最后

  我以为上了研究生就会逃脱竞赛的魔掌,可是还是被导师压着来打竞赛了。。。。嘤嘤嘤

  跟着导师水一水论文走上人生巅峰的愿望破灭了。我以为导师只是数学建模竞赛的狂热爱好者,没想到他是所有竞赛的爱好者。

  希望本狗子能在研究生期间把CCF过了,让孩子过了吧!!!!


http://www.ngui.cc/zz/2700280.html

相关文章

用python打ACM的日子

输入输出 我们都知道打ACM在输入输出都很有特定的要求&#xff0c;比如循环输入样例。 我们用c和c是这样写的。 //C语言 while(~scanf("%d",&n)) { } //或者 while(scanf("%d",&n)!EOF) { }//c while(cin>>n) { }但是呢&#xff0c;本狗…

【面试题】网易互娱(游戏)2020校招在线笔试-游戏研发第一批[水平线]

伞屉国是一个以太阳能为主要发电手段的国家&#xff0c;因此他们国家中有着非常多的太阳能基站&#xff0c;链接着的基站会组合成一个发电集群。但是不幸的是伞屉国不时会遭遇滔天的洪水&#xff0c;当洪水淹没基站时&#xff0c;基站只能停止发电&#xff0c;同时被迫断开与相…

【面试题】网易互娱(游戏)2021校园招聘在线笔试 - 服务端开发工程师[文件系统]

昨晚做网易互娱的笔试&#xff0c;比较尴尬的是只能用C/C/Java&#xff0c;而本人对C/C的了解仅限于大一的课程设计&#xff08;而且一年多没用过C写代码了&#xff09;&#xff0c;Java差不多看得懂代码但是没有系统的学过。无奈最后只能用python写了两道题&#xff0c;再用C照…

Python中构造方法和初始化方法

原文链接&#xff1a;https://blog.csdn.net/qq_19707521/article/details/79359858 类的实例化 在python中创建一个新式类时&#xff0c;一般都会定义一个 __init__ 方法&#xff0c;用来对类的实例进行初始化。但是 __init__ 方法并不是类的构造方法&#xff0c;类中真正的构…

LocustIO官方文档

写在前面 最近打算学习LocustIO&#xff0c;但是介于英文水平一般&#xff0c;英文文档读起来还是不太顺畅&#xff0c;于是花了两天时间把整个英文文档翻译了一遍&#xff0c;以供学习之用。翻译过程尽量终于原文&#xff0c;但是由于水平有限&#xff0c;难免会有错失遗漏&a…

统一图片尺寸方法

转自&#xff1a;http://www.cnblogs.com/tornadomeet/archive/2012/03/27/2420088.html // change_img_size.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h"//这句头文件一定要放在最上面&#xff0c;否则很容易报错#include "opencv2/imgproc/im…

quartz(六)定时任务的暂停、关闭等操作说明

定时任务的暂停、关闭等操作说明 基于quartz3.0版本总结一些quartz定时任务的暂停、恢复、删除等操作。 定时任务的删除等操作主要是基于JobKey或TriggerKey。 暂停Job: //通过JobName以及JobGroup获得JobKeyJobKey jobKey JobKey.jobKey("aaaa" 1, JOB_GROUP_N…

Redis总结(八)redis单线程还是多线程问题

redis为什么可以支持高并发和它内部的工作模式有不可分割的关系&#xff1a; 绝大部分请求是纯粹的内存操作&#xff08;非常快速&#xff09;采用单线程,避免了不必要的上下文切换和竞争条件非阻塞IO - IO多路复用 Redis客户端对服务端的每次调用都经历了发送命令&#xff0…

Struts2详述

提到Struts就不得不提到MVC&#xff0c;因为struts2就是基于MVC设计理念而开发的Java Web应用框架&#xff0c;下面先介绍一下MVC的原理&#xff1a;MVC全名是Model View Controller&#xff0c;是模型(model)&#xff0d;视图(view)&#xff0d;控制器(controller)的缩写&…

git和maven

很多人应该用过svn cvs之类的代码版本管理工具&#xff0c;git也是其中之一。 svn和git最大的几个区别要点&#xff0c;svn必须要有服务端&#xff0c;网络能连上服务端才能提交和更新&#xff0c;git不需要&#xff0c;每一台装了git的电脑都是服务端&#xff0c;各台电脑之间…