41. First Missing Positive
problem description
Input: [1,2,0]
Output: 3Input: [3,4,-1,1]
Output: 2Input: [7,8,9,11,12]
Output: 1algorithm thought
code
algorithm analysis
Last updated
Input: [1,2,0]
Output: 3Input: [3,4,-1,1]
Output: 2Input: [7,8,9,11,12]
Output: 1Last updated
class Solution {
public:
int firstMissingPositive(vector<int>& nums) {
int size=nums.size();
for(int i=0;i<size;i++)
{
while(nums[i]>0&&nums[i]<size&&nums[nums[i]-1]!=nums[i])
{
swap(nums[i],nums[nums[i]-1]);
}
}
for(int i=0;i<size;i++)
{
if(nums[i]!=i+1)
return i+1;
}
return size+1;
}
};