First Missing Positive
Given an unsorted integer array, find the first missing positive integer.
For example,
Given [1,2,0] return 3,
and [3,4,-1,1] return 2.
Your algorithm should run in O(n) time and uses constant space.
class Solution { public: int firstMissingPositive(vector<int>& nums) { int i = 0; int size = nums.size(); while (i < size) { if(nums[i] == i + 1) i++; else if(nums[i] < i+1 || nums[i] > size || nums[i] == nums[nums[i]-1] ){ nums[i] = nums[--size]; }else{ swap(nums[nums[i]-1],nums[i]); } } return i+1; } };

浙公网安备 33010602011771号