其他分享
首页 > 其他分享> > 1144 The Missing Number

1144 The Missing Number

作者:互联网

题目大意是找出没有在给定数列中最小的正数。

20分,水题,一开始写了个map暴力,果然可以过_(:3」∠)_

想了想,把所有正数排序去重一下,最差的情况就是从1到n都已经有了,详见代码。

#include <iostream>
#include <cstring>
#include <string>
#include <sstream>
#include <string>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <map>
#define maxn 100005
#define INF 0x3f3f3f3f
#define EPS 1e-6
#define pi acos(-1.0)
using namespace std;
typedef long long ll;
int n,x;
int a[maxn];
int main()
{
    scanf("%d",&n);
    int p=0;
    for(int i=0;i<n;i++)
    {
        scanf("%d",&x);
        if(x>0)
        {
            a[p++]=x;
        }
    }
    sort(a,a+p);
    p=unique(a,a+p)-a;
    int ans,flag=0;
    for(int i=0;i<p;i++)
    {
        if(a[i]!=i+1)
        {
            flag=1;
            ans=i+1;
            break;
        }
    }
    if(flag)
        printf("%d\n",ans);
    else
        printf("%d\n",a[p-1]+1);
}
View Code

 

标签:正数,1144,Missing,int,Number,long,maxn,include,define
来源: https://www.cnblogs.com/FTA-Macro/p/10303397.html