Leetcode 41. First Missing Positive

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010821666/article/details/82597591

Leetcode 41. First Missing Positive

class Solution {
public:
    int firstMissingPositive(vector<int>& nums) {
        if(nums.empty())
      return 1;
        int size = nums.size();
    int res = 0;
    for(int i = 0;i < size;i ++){
      while(nums[i] > 0 && nums[i] != nums[nums[i]-1] && nums[i] < size) {
        //while is important!
        swap(nums[i],nums[nums[i]-1]);
      }
    }

    for(int i = 0;i < size;i ++){
     if(nums[i] != i+1) {
       res = i+1;
       break;
     }
    }
    if(!res)
      res = size + 1;

    return res;
    }
};

猜你喜欢

转载自blog.csdn.net/u010821666/article/details/82597591