'''

class Solution {

public:

```
int firstMissingPositive(vector<int>& nums) {
for (auto& u : nums) {
if (u <= 0) u = nums.size() + 2;
}
for (auto& u : nums) {
if (abs(u) <= nums.size()) {
nums[abs(u) - 1] = -abs(nums[abs(u) - 1]);
}
}
for (size_t i = 0; i < nums.size(); ++i) {
if (nums[i] > 0) return i + 1;
}
return nums.size() + 1;
}
```

};

'''