First Missing Positive
2014-08-08 11:00
155 查看
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.
public class Solution { public int firstMissingPositive(int[] A) { if(A.length==0) return 1; for(int i=0;i<A.length;i++){ while(A[i]!=i+1){ if(A[i]<=0 || A[i]>A.length || A[i]==A[A[i]-1]) break; swap(A,i,A[i]-1); } } for(int i=0;i<A.length;i++){ if(A[i]!=i+1) return i+1; } return A.length+1; } public void swap(int []A,int i,int j){ if(i!=j){ A[i]=A[i]^A[j]; A[j]=A[i]^A[j]; A[i]=A[j]^A[i]; } } }思路:桶排序,把k个数放到k+1个桶里,必然有一个为空。每一次交换都把一个数放到正确的位置。然后遍历找到第一个不正确的。
相关文章推荐
- 41. First Missing Positive
- LeetCode: First Missing Positive
- leetcode---first-missing-positive---数组
- 41. First Missing Positive
- 【Leetcode】之First Missing Positive
- 【LeetCode OJ 41】First Missing Positive
- [leetcode刷题系列]First Missing Positive
- Leetcode: First Missing Positive
- CODE 92: First Missing Positive
- First Missing Positive
- LeetCode OJ:First Missing Positive
- LeetCode First Missing Positive
- LeetCode41 First Missing Positive
- leetcode做题总结,题目First Missing Positive 2012/03/08
- First Missing Positive
- leetcode - First Missing Positive
- First Missing Positive
- [LeetCode]First Missing Positive(Java)
- leetcode:First Missing Positive
- [LeetCode] First Missing Positive