首页 > 其他 > 详细

[Leetcode]--First Missing Positive

时间:2014-01-24 12:36:42      阅读:326      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
public class Solution {
   public int firstMissingPositive(int[] A) {
        // Start typing your Java solution below
        // DO NOT write main() function
        int len = A.length;
        
        for(int i = 0; i <len; i++){
            while(A[i] != i+1){

        /* A[i] == A[A[i]-1]是为了检测当前值是否和前一个值相等
         * eg: A[2] =3 && A[3] =3, 不加将进入死循环
         */
                if(A[i] > len || 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 < len; i++){
            if(A[i] != i+1)
            return i+1;
        }
        
        return len+1;
   }
}                                
bubuko.com,布布扣

[Leetcode]--First Missing Positive

原文:http://www.cnblogs.com/RazerLu/p/3531944.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!