首页 > 试题广场 >

序列找数

[编程题]序列找数
  • 热度指数:16119 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
从非负整数序列 0, 1, 2, ..., n中给出包含其中n个数的子序列,请找出未出现在该子序列中的那个数。

输入描述:
输入为n+1个非负整数,用空格分开。
其中:首个数字为非负整数序列的最大值n,后面n个数字为子序列中包含的数字。


输出描述:
输出为1个数字,即未出现在子序列中的那个数。
示例1

输入

3 3 0 1

输出

2
#include <stdio.h>
int main()
{
    int n,num;
    scanf("%d",&n);
    int array[100]={0};
    int nums[100]={0};
    for(int i=0;i<n;i++){
        scanf("%d",&array[i]);
    }
    for(int i=0;i<n;i++){
        int a=array[i];
        nums[a]=1;
    }
    for(int i=0;i<n;i++){
        if(nums[i]==0){
            num = i;
        }
    }
    printf("%d\n",num);
    return 0;
}
#暴搜法#
发表于 2022-09-15 16:19:18 回复(0)
#include<stdio.h>
int main(){
    int i,j,n;
    int a[99],b[99];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++)
    {
        b[i]=i;
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<=n;j++)
        {
            if(a[i]==j)
                b[j]=-1;
        }
    }
    for(i=0;i<n;i++)
    {
        if(b[i]!=-1)
            printf("%d",b[i]);
    }

    return 0;
}


发表于 2022-09-13 19:54:09 回复(0)