沿用“置位法”:
class Solution {
public:
int firstMissingPositive(vector<int>& nums) {
for(int i =0 ; i<nums.size(); )
{
if(nums[i]!=i+1&&nums[i]>0&&nums[i]<nums.size()&&nums[i]!=nums[nums[i]-1])
{
int temp = nums[i];
nums[i]=nums[temp-1];
nums[temp-1]=temp;
}
else
i++;
}
for(int i =0;i<nums.size();i++)
{
if(nums[i]!=i+1)
return i+1;
}
return nums.size()+1;
}
};