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

相关文章:

  • 2021-05-31
  • 2021-06-18
  • 2021-06-30
  • 2021-08-28
  • 2021-10-13
猜你喜欢
  • 2021-10-22
  • 2021-10-12
  • 2022-12-23
  • 2021-08-06
  • 2021-10-09
相关资源
相似解决方案