题目链接
题目内容
给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。
示例 1
输入: [1,2,0]
输出: 3
示例 2
输入: [3,4,-1,1]
输出: 2
示例 3
输入: [7,8,9,11,12]
输出: 1
提示
你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。
解题思路
从1开始到nums.size()结束,使用find函数,如果遇到不存在的数就返回。
代码
class Solution {
public:
int firstMissingPositive(vector<int>& nums) {
for(int i = 1; i <= nums.size() + 1; ++i)
{
auto result = find(nums.begin(), nums.end(), i);
if(result == nums.end())
{
return i;
}
}
return 0;
}
};