lc41-First Missing Positive

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
public:
int firstMissingPositive(vector<int>& nums) {
int l = nums.size();
for (int i = 0; i < l; i++) {
int t = nums[i];
if (t > 0 && t - 1 < l && nums[t - 1] != t && t != (i + 1)) {
nums[i] = nums[t - 1];
nums[t - 1] = t;
i--;
}
}
for (int i = 0; i < l; i++) {
if (nums[i] != i + 1)
return i + 1;
}
return l + 1;
}
};