给定一个未排序的整数数组,找出其中没有出现的最小的正整数。
示例 1:
输入: [1,2,0]
输出: 3
示例 2:
输入: [3,4,-1,1]
输出: 2
示例 3:
输入: [7,8,9,11,12]
输出: 1
package leetCode5_20;
import java.util.Arrays;
/**
* @author : caoguotao
* @date 创建时间:2019年5月25日 下午9:20:49
* @version 1.0
* @parameter
* @since
* @return
*/
public class Solution41 {
public static void main(String[] args) {
Solution41 s = new Solution41();
int[] nums = {1,1,2,2};
int res = s.firstMissingPositive(nums);
System.out.println(res);
}
public int firstMissingPositive(int[] nums) {
Arrays.sort(nums);
int len = nums.length;
if(len == 0) {
return 1;
}
int res = 1;
//所有数比1大
if(nums[0] > 1) {
return 1;
}
//所以数比1小
if(nums[len -1] <= 0) {
return 1;
}
for(int i = 0; i < len - 1; i++) {
if(nums[i] > 0) {
if(nums[i] == nums[i + 1]) {
}else {
if(nums[i] == res) {
res++;
}else {
return res;
}
}
}
}
if(res == nums[len - 1]) {
res++;
}
return res;
}
}