pat1144 The Missing Number

题意:输出给定序列中没有出现的最小正整数。

思路:把正数排序去重后遍历一下就好。

代码

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>

using namespace std;

const int MAX_N = 100010;
int len = 0, n, x;
int a[MAX_N];

int main() {
    // freopen("in.txt", "r", stdin);
    // freopen("out.txt", "w", stdout);
    scanf("%d", &n);
    len = 0;
    for (int i = 0; i < n; i++) {
        scanf("%d", &x);
        if (x > 0) {
            a[len++] = x;
        }
    }
    sort(a, a+len);
    len = unique(a, a+len) - a;
    int ans = 1;
    for (int i = 0; i < len; i++) {
        if (a[i] > ans) {break;}
        ans++;
    }
    printf("%d\n", ans);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/csx0987/article/details/82081968