41. First Missing Positive *HARD*
Posted ArgenBarbie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了41. First Missing Positive *HARD*相关的知识,希望对你有一定的参考价值。
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.
int firstMissingPositive(vector<int>& nums) { int n = nums.size(), t, i; for(i = 0; i < n; i++) { t = nums[i]; while(t > 0 && t < n && nums[t-1] != t) { swap(nums[i], nums[t-1]); t = nums[i]; } } for(i = 0; i < n; i++) { if(nums[i] != i+1) return i+1; } return n+1; }
Idea:
*
* We can move the num to the place whcih the index is the num.
*
* for example, (considering the array is zero-based.
* 1 => A[0], 2 => A[1], 3=>A[2]
*
* Then, we can go through the array check the i+1 == A[i], if not ,just return i+1;
以上是关于41. First Missing Positive *HARD*的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 41. First Missing Positive
java 41. First Missing Positive(#)。java
java 41. First Missing Positive(#)。java