缺失的一个正数

通过下标和该值相结合的方式来查找这个值。

class Solution {
public:
    int firstMissingPositive(vector<int>& nums) {
        for(int i = 0;i<nums.size();)
        {
            if(nums[i]>0 && nums[i] <= nums.size() && nums[i] != nums[nums[i]-1])
            {
                int index = nums[i];
                nums[i] = nums[index-1];
                nums[index-1] = index;
            }
            else
            {
                i++;
            }
        }
        for(int i = 0;i<nums.size();++i)
        {
            if(nums[i] != i+1)
            {
                return i+1;
            }
        }
        return nums.size()+1;
    }
};

猜你喜欢

转载自blog.csdn.net/C1029323236/article/details/89037169