> For the complete documentation index, see [llms.txt](https://nataliekung.gitbook.io/solutions/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nataliekung.gitbook.io/solutions/first_missing_positive.md).

# First Missing Positive

int firstMissingPositive(vector\<int>& nums) {

if(nums.empty()) return 1;

int i=0;

while(i\<nums.size()){

if(nums\[i]!=i+1&\&nums\[nums\[i]-1]!=nums\[i]&\&nums\[i]>0&\&nums\[i]-1\<nums.size()){

swap(nums\[nums\[i]-1],nums\[i]);

}

else

i++;

}

for(int j=0;j\<nums.size();j++){

if(nums\[j]!=j+1)

return j+1;

}

return nums.size()+1;

}
