题目描述
样例
给定 n 个自然数,求没有在这 n 个自然数中出现过的最小的自然数是多少。
注意,0 也是自然数。
输入格式
第一行输入一个正整数 n。
第二行输入给定的 n 个自然数,相邻两个自然数之间用一个空格隔开。
输出格式
输出只有一行,一个自然数,表示没有在输入的 n 个自然数中出现过的最小的自然数。
数据范围
1≤n≤1000,
输入的 n 个自然数都不大于 1000。
输入样例1:
7
2 1000 7 0 1 2 5
输出样例1:
3
输入样例2:
5
1 2 3 4 5
输出样例2:
0
样例解释
样例 1 中,输入的自然数中,0、1、2 出现了,3 没有出现,所以答案是 3。
样例 2 中,输入的自然数中,0 没有出现,所以答案是 0。
算法1
接受输入的时候 使用数组作一个哈希 。 然后遍历这个数组 从索引0开始 如果记录中没有这个数
那么就找到了答案
C++ 代码
#include <iostream>
#include <algorithm>
using namespace std;
int arr[10010];
int n,t;
int main(){
cin >> n;
for(int i = 0; i < n ; i++){ cin >> t; arr[t]++; }
for(int i = 0; i < n;i++){
if(arr[i] == 0) { cout << i << endl; break;}
}
return 0;
}
小小的一个蒟蒻问一下,这和哈希有什么关联嘛…………
哈希的key就是他自己啊
哦,明白了,谢谢您
tql,2022.2.18前来考古