Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int firstMissingPositive(vector<int>& nums) {
- nums.push_back(0); // so that if we have a positive integer of nums.size() value we can put it in a proper position
- for (int i = 0; i < nums.size(); ++i) {
- int next_index = nums[i];
- while (next_index >= 0 && next_index < nums.size() && next_index != nums[next_index]) {
- int tmp = nums[next_index];
- nums[next_index] = next_index;
- next_index = tmp;
- }
- }
- int i = 1;
- for (; i < nums.size(); ++i)
- if (nums[i] != i) return i;
- return i;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement