41. First Missing Positive
class Solution {
public:
int firstMissingPositive(vector<int>& nums) {
const int N = nums.size();
for (auto &num : nums) {
if (num <= 0) num = INT_MAX;
}
for (auto num : nums) {
num = abs(num);
if (num <= N) nums[num - 1] = -abs(nums[num - 1]);
}
for (int i = 0; i < N; ++i) {
if (nums[i] >= 0) return i + 1;
}
return N + 1;
}
};Last updated