给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。
示例 1:
输入: [1,2,0]
输出: 3
示例 2:
输入: [3,4,-1,1]
输出: 2
示例 3:
输入: [7,8,9,11,12]
输出: 1
提示:
你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间
package leetcode; import java.util.Arrays; public class FirstMissShuSolution { int firstMissShu(int[] nums){ if(nums == null){ return 1; } Arrays.sort(nums); int compare = 0 ; for(int i=0 ;i < nums.length; i++){ if(nums[i] <= 0 ){ continue; } if(i > 0 && nums[i-1] == nums[i]){ continue; } compare++; if(compare < nums[i]){ return compare; } } return compare+1; } public static void main(String[] args){ int[] nums={0,-1,-2,2,3,4,5,6,78}; int n = new FirstMissShuSolution().firstMissShu(nums); System.out.println(n); } }
原文:https://www.cnblogs.com/goodtest2018/p/13908386.html