Question:
Solve:没有坑,缺少的数据不出现,重复的数据出现两次,计数就可以了。
Code:
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
//初始化
int n,temp,cnt[100010];
int maxn = -1, minn = 100010;
memset(cnt,0,sizeof(cnt));
scanf("%d",&n);
//录入数据并计数,找出给定数的最大值和最小值
while(n--)
{
while(~scanf("%d",&temp)){
cnt[temp]++;
maxn = max(maxn, temp);
minn = min(minn, temp);
}
}
//遍历找出数量为0和2的数输出
int res1, res2;
res1 = res2 = 0;
for(int i = minn; i <= maxn; i++){
if(cnt[i] == 0) res1 = i;
if(cnt[i] == 2) res2 = i;
if(res1 && res2) break;
}
cout <<res1 <<" " <<res2 <<endl;
return 0;
}
声明:图片均来源于蓝桥杯官网,以个人刷题整理为目的,如若侵权,请联系删除~