数据结构作业——N个数中未出现的最小整数(想法题)

Description

给出一串数字,这串数字由 n 个数 ai 组成,找出未出现在这串数字中的最小正整数

Input

输入第一行为一个正整数 n (1 <= n <= 1000)

第二行为 n 个正整数 ai ( 1 <= ai <= 1000000000)

Output

输出没有出现在这 n 个正整数中的最小的正整数

Sample Input

5 
2 4 3 5 1
5
1 100 101 102 103

Sample Output

6
2

思路

因为n的大小为1000,所以没有出现在n个整数中的最小整数必定在1-1001中产生,开一个大小为1000的数组标记1-1000中数存在的情况,对于大于1000的数忽略,遍历一遍就可以了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<stdio.h>
 
int main()
{
    int N;
    while (~scanf("%d",&N))
    {
        int ans[1005] = {0},tmp,i;
        bool flag = false;
        for (i = 0;i < N;i++)
        {
             scanf("%d",&tmp);
             if (tmp <= 1000)
             {
                ans[tmp] = 1;
             }
        }
        for (i = 1;i <= N;i++)
        {
            if (!ans[i])
            {
                flag = true;
                printf("%d\n",i);
                break;
            }
        }
        if (!flag)
        {
            printf("%d\n",N + 1);
        }
    }
    return 0;
}

  

 
posted @   zxzhang  阅读(512)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示

目录导航