最小差值

问题描述
  给定 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的正整数。
本题是ccf第一题,难度较小。
题目分析:对于一个数列,最小差值的两个数一定是大小相邻的两个数,我们可以采用c++标准库中的sort()函数进行排序,然后从头开始查找最小差值。
代码如下:
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int a[n];
	for(int i=0;i<n;i++)
	cin>>a[i];
	sort(a,a+n);
	int minnum=abs(a[0]-a[1]);
	for(int i=1;i<n-1;i++)
	if(abs(a[i]-a[i+1])<minnum)
	minnum=abs(a[i]-a[i+1]);
	cout<<minnum;
 } 

 

全部评论
// // Created by good boy on 2023/12/29. // /** 题目描述 给定 n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。 输入格式:   输入第一行包含一个整数 n。   第二行包含 n个正整数,相邻整数之间使用一个空格分隔。 */ #include<bits> using namespace std; const int N = 1010; int a[N]; int n; int main(){ cin>>n; for(int i=0;i<n>>a[i]; sort(a,a+n); int min_sum = INT_MAX; for(int i=1;i</n></bits>
点赞 回复 分享
发布于 2023-12-29 09:56 广东

相关推荐

02-28 13:25
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
7952次浏览 73人参与
# 你的实习产出是真实的还是包装的? #
1491次浏览 37人参与
# MiniMax求职进展汇总 #
23484次浏览 305人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7248次浏览 39人参与
# 简历第一个项目做什么 #
31424次浏览 318人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186682次浏览 1117人参与
# 巨人网络春招 #
11260次浏览 223人参与
# 研究所笔面经互助 #
118827次浏览 577人参与
# 重来一次,我还会选择这个专业吗 #
433189次浏览 3924人参与
# 简历中的项目经历要怎么写? #
309795次浏览 4174人参与
# 面试紧张时你会有什么表现? #
30448次浏览 188人参与
# AI时代,哪些岗位最容易被淘汰 #
63077次浏览 769人参与
# 正在春招的你,也参与了去年秋招吗? #
362963次浏览 2635人参与
# 你怎么看待AI面试 #
179634次浏览 1202人参与
# 职能管理面试记录 #
10765次浏览 59人参与
# 网易游戏笔试 #
6418次浏览 83人参与
# 腾讯音乐求职进展汇总 #
160504次浏览 1107人参与
# 校招笔试 #
468957次浏览 2960人参与
# 把自己当AI,现在最消耗你token的问题是什么? #
7113次浏览 156人参与
# 你觉得通信/硬件有必要实习吗? #
155421次浏览 1065人参与
# 小红书求职进展汇总 #
227003次浏览 1357人参与
# 从哪些方向判断这个offer值不值得去? #
56719次浏览 357人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务