First Missing Positive
2016-10-13 10:02
295 查看
Given an unsorted integer array, find the first missing positive integer.
For example,
Given
and
Your algorithm should run in O(n) time and uses constant space.
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; } };
相关文章推荐
- *LeetCode-First Missing Positive
- [LeetCode] First Missing Positive
- 数组:Remove Element&Merge Sorted Array&First Missing Positive
- 41. First Missing Positive
- First Missing Positive:一道对测试样例十分困惑的题目
- 【LeetCode算法练习(C++)】First Missing Positive
- LeetCode 41 First Missing Positive (思维)
- [leetcode] First Missing Positive
- First Missing Positive (寻找第一个丢失的正数)【leetcode】
- 37 - First Missing Positive
- 41. First Missing Positive
- LeetCode - First Missing Positive
- 【数组】First Missing Positive
- LeetCode: First Missing Positive
- leetcode第一刷_ First Missing Positive
- 【LeetCode】First Missing Positive
- First Missing Positive-计数排序/桶排序
- [LeetCode] First Missing Positive
- 41. First Missing Positive
- [LeetCode] First Missing Positive (Hasing)