版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010821666/article/details/82597591
Leetcode 41. First Missing Positive
class Solution {
public:
int firstMissingPositive(vector<int>& nums) {
if(nums.empty())
return 1;
int size = nums.size();
int res = 0;
for(int i = 0;i < size;i ++){
while(nums[i] > 0 && nums[i] != nums[nums[i]-1] && nums[i] < size) {
//while is important!
swap(nums[i],nums[nums[i]-1]);
}
}
for(int i = 0;i < size;i ++){
if(nums[i] != i+1) {
res = i+1;
break;
}
}
if(!res)
res = size + 1;
return res;
}
};