首页 > 其他 > 详细

LeetCode First Missing Positive

时间:2015-01-12 22:13:52      阅读:354      评论:0      收藏:0      [点我收藏+]

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.

 

 1 public class Solution {
 2     public int firstMissingPositive(int[] A) {
 3         if (A.length == 0) {
 4             return 1;
 5         }
 6         int i=0;
 7         int n = A.length;
 8         while (i < n) {
 9             if (A[i] != i + 1 && A[i] >= 1 && A[i] <= n && A[A[i] - 1] != A[i]) {
10                 swap(A,i,A[i]-1);
11             }else ++i;
12         }
13         for (int j = 0; j < A.length; j++) {
14             if (A[j] != j + 1) {
15                 return j + 1;
16             }
17         }
18         return n + 1;
19     }
20         void swap(int[] A, int a, int b) {
21         int temp = A[a];
22         A[a] = A[b];
23         A[b] = temp;
24     }
25 }

 

LeetCode First Missing Positive

原文:http://www.cnblogs.com/birdhack/p/4219944.html

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