问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。 输入格式 输入的第一行包含一个整数n,表示给定整数的个数。 第二行包含所给定的n个整数。 输出格式 输出一个整数,表示值正好相差1的数对的个数。 样例输入 6 10 2 6 3 7 8 样例输出 3 样例说明 值正好相差1的数对包括(2, 3), (6, 7), (7, 8)。 评测用例规模与约定 1<=n<=1000,给定的整数为不超过10000的非负整数。
大眼一看觉得很复杂,然后告诉自己这是第一题啊第一题,很简单很简单,然后就有思路了,然后注意一下数组范围,就ok了
#include <iostream>#include <stdio.h>#include <queue>#include <algorithm>#include <cmath>#include <string>using namespace std;int a[10010];int main(){ int n; cin>>n; int num; int maxn=10010; int minn=0; for(int i=0;i<n;i++) { cin>>num; a[num]++; if(num>maxn) maxn=num; if(num<minn) minn=num; } int sum=0; for(int i=minn;i<maxn;i++) { sum=sum+min(a[i],a[i+1]); } cout<<sum<<endl; return 0;}新闻热点
疑难解答