Untitled
class Solution { public: int firstMissingPositive(vector<int>& nums) { int ss= nums.size(); for(int i=1;i<=ss;i++){ if(nums[i-1]==i) continue; while(nums[i-1]!=i){ int nextIndex= nums[i-1]; if(nextIndex==INT_MIN || nextIndex-1 >= ss || nextIndex-1 < 0) break; if(nums[nextIndex-1] == nextIndex) break; int temp = nums[nextIndex-1]; nums[nextIndex-1]= nextIndex; nums[i-1]= temp; } } for(int i=1;i<=ss;i++){ if(nums[i-1]==i) continue; return i; } return ss+1; } };
Leave a Comment