Untitled

 avatar
unknown
plain_text
a month ago
781 B
1
Indexable
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