【蓝桥杯】错误票据

        今天是2024年3月1号,蓝桥杯比赛还有一个月的时间,虽说自己不指望拿奖吧,但是还是有些莫i名的焦虑,这道题目都做不出来,感觉自己真的有点菜啊!但是还好啦,我觉得是因为我没有题感,慢慢来呗,你也是

 题解:

        首先这道题的意思就是找出重复的数和断掉的数,那我刚开始就想岔了。想着要不把他放到一个数组里面去,先排个序,还后有重复的存在那就是重复的数,再遍历一下,缺少的就是断掉的数,复杂吧,然后看了别人的题解之后,我想着damn it !

        首先就是这个票据是连续的,所以我们可以直接就用一个数组来存,下标就是票据中的数字,具体的数值那就是存放的次数。然后再遍历,出现一次且前后都有当下的数为0的那就代表是断号,出现两次的那就是重复的数。

Code:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,x,a[100005],ans1,ans2;
signed main(){
    cin>>n;
    while(cin>>x) a[x]++;
    for(int i=1;i<10004;i++){
        if(a[i-1]&&a[i+1]&&!a[i]){
            ans1=i;
        }
        if(a[i]>1) ans2=i;
        if(ans1&&ans2) break;
    }
    cout<<ans1<<" "<<ans2<<endl;
    return 0;
}

感觉自己C++这个语言掌握的不是很熟练,我们俩很陌生,嗯,再处处!你加油哦~

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值