题目描述
请设计一个高效算法,查找数组中未出现的最小正整数。
给定一个整数数组A和数组的大小n,请返回数组中未出现的最小正整数。保证数组大小小于等于500。
测试样例:
[-1,2,3,4],4
返回:1
Solution 1:
class ArrayMex { public: int findArrayMex(vector<int> A, int n) { // write code here // n <= 500 map<int, int> myMap; for(int i = 0; i < n; ++i) { myMap[A[i]] = 1; } for(int i = 1; i <= n; ++i) { if(myMap.count(i) != 1) { return i; } } return 0; } };
Solution 2:
class ArrayMex { public: int findArrayMex(vector<int> A, int n) { // write code here // n <= 500 for(int i = 1; i <= n; ++i) { if(find(A.begin(), A.end(), i) == A.end()) { return i; } } return 0; } };