您的位置:首页 > 其它

41. First Missing Positive

2016-03-17 20:32 239 查看

First Missing Positive

寻找第一个缺失的正整数 即大致就是将给出的数组进行排序 然后找出第一个缺失的正整数

For example:

Given [1,2,0] return 3, and [3,4,-1,1] return 2.

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]) //若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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: