Advertisement
Guest User

Untitled

a guest
Nov 16th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.64 KB | None | 0 0
  1.  int firstMissingPositive(vector<int>& nums) {
  2.         nums.push_back(0); // so that if we have a positive integer of nums.size() value we can put it in a proper position
  3.         for (int i = 0; i < nums.size(); ++i) {
  4.             int next_index = nums[i];
  5.             while (next_index >= 0 && next_index < nums.size() && next_index != nums[next_index]) {
  6.                 int tmp = nums[next_index];
  7.                 nums[next_index] = next_index;
  8.                 next_index = tmp;
  9.             }
  10.         }
  11.        
  12.         int i = 1;
  13.         for (; i < nums.size(); ++i)
  14.             if (nums[i] != i) return i;
  15.        
  16.         return i;
  17.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement