您的位置:首页 > 其它

leetcode--First Missing Positive

2017-08-08 09:25 417 查看
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.

[java] view
plain copy

public class Solution {  

    public int firstMissingPositive(int[] A){  

        if(A.length==0||A==null)  

          return 1;  

        //把元素放入正确的位置,例如1放在A[0],2放在A[1];负数,相同数字,不必理会,因为已经出现过了,负数则必然连续(但不是顺序的)  

        for(int i = 0;i<A.length;i++){  

          while(A[i]!=i+1){  

            if(A[i]>=A.length||A[i]<=0||A[i]==A[A[i]-1])  

              break;  

            int temp = A[i];  

            A[i] = A[temp-1];  

            A[temp-1] = temp;  

          }  

        }  

          

        for(int i = 0;i<A.length;i++){  

          if(A[i]!=i+1)  

            return i+1;  

        }  

        return A.length+1;  

  }  



原文链接http://blog.csdn.net/crazy__chen/article/details/45726257
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: