题目描述:
给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。
进阶:你可以实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案吗?
个人第一下想法就是先给这个数组排序
class Solution {
public int firstMissingPositive(int[] nums) {
Arrays.sort(nums);
boolean flag = false;
int index=0;
for(int i=0;i<nums.length;i++){
if(nums[i]>0){
flag=true;
index=i;
break;
}
}
if(flag==false){
//表示全是负数
return 1;
} else{
//表示从索引位置index开始都是正数
if(nums[index]!=1){
return 1;
} else{
for(int i=index;i<nums.length-1;i++){
//还要考虑有没有重复的数字
if((nums[i]!=nums[i+1]) && nums[i]+1 != nums[i+1])
{
//表示不是连续的也不是重复的
return nums[i]+1;
}
}
return nums[nums.length-1]+1;
}
}
}
}