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;
}
Last updated
Was this helpful?