未出现的最小正整数

给出n个数,找出其中未出现的最小正整数。

只需要统计1-n是否出现,找最小未出现的即可,比如给出n个数,最多也是1-n都出现一次,那么最小未出现都是n+1,所以只需要统计1-n

代码:

#include <stdio.h>
#define MAX 100

int main() {
    int n,d;
    char vis[MAX + 1] = {0};
    scanf("%d",&n);
    for(int i = 0;i < n;i ++) {
        scanf("%d",&d);
        if(d > 0 && d <= n) vis[d] = 1;
    }
    d = 1;
    while(d <= n && vis[d]) d ++;
    printf("%d",d);
    return 0;
}
原文地址:https://www.cnblogs.com/8023spz/p/11845962.html