A 1144 The Missing Number (20分)

一、技术总结

  1. 即判断给出一串数字中缺少的最小正整数
  2. 直接可以遍历判断n个数字中是否在一串数字中是否出现,如果没有直接输出
  3. 但是会出现一种情况,是恰好给出的数字是1~n,这是需要再判断一下了遍历的次数是否等于n,如果是的话直接输出n+1

二、参考代码

#include<iostream>
#include<vector>
#include<set>
#include<algorithm>
using namespace std;
int main(){
	int n, num = 0;
	scanf("%d", &n);
	set<int> m;
	vector<int> v(n);
	for(int i = 0; i < n; i++){
		scanf("%d", &v[i]);
		m.insert(v[i]);
	}
	sort(v.begin(), v.end());
	for(int i = 1; i <= n; i++){
		num++;
		if(m.find(i) == m.end()){
			printf("%d", i);
			break;
		}
	}
	if(num == n) printf("%d", num+1);
	return 0;
}

猜你喜欢

转载自www.cnblogs.com/tsruixi/p/13170222.html