nikunjsoni

41

Jun 25th, 2021
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.59 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     int firstMissingPositive(vector<int>& nums) {
  4.         int tmp=INT_MAX, n=nums.size();
  5.         for(int num: nums)
  6.             if(num>0){ tmp = num; break;}
  7.         for(int &num: nums)
  8.             if(num <= 0) num = tmp;
  9.         for(int num: nums){
  10.             num = abs(num);
  11.             if(num == n) nums[0] = -abs(nums[0]);
  12.             if(num>0 && num<n)
  13.                 nums[num] = -abs(nums[num]);
  14.         }
  15.         for(int i=1; i<n; i++)
  16.             if(nums[i] > 0) return i;
  17.         if(nums[0] > 0)
  18.             return n;
  19.         return n+1;
  20.     }
  21. };
Advertisement
Add Comment
Please, Sign In to add comment