找出数组中从未出现的最小正整数java实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找出数组中从未出现的最小正整数java实现相关的知识,希望对你有一定的参考价值。
1 /** 2 * 找出未出现的最小正整数 3 * @param A 4 * @param n 5 * @date 2016-10-7 6 * @author shaobn 7 */ 8 public static int findArrayMex(int[] a,int n){ 9 int count = n; 10 int temp = 0; 11 int dir = 1; 12 int num = 0; 13 for(int i = 0;i<count-1;i++){ 14 if(a[i]>a[i+1]){ 15 temp = a[i]; 16 a[i]= a[i+1]; 17 a[i+1] = temp; 18 } 19 if(i==count-2){ 20 count--; 21 i=-1; 22 } 23 } 24 if(a[0]>1 || a[n-1]<1){ 25 return 1; 26 }else { 27 for(int i =0;i<n-1;i++){ 28 if(a[i]>0){ 29 num = i; 30 break; 31 } 32 } 33 if(a[num]>1){ 34 return 1; 35 }else if(a[num]==1) { 36 for(int i =num+1;i<n-1;i++){ 37 if(a[i]-a[num]>dir){ 38 return a[num]+dir; 39 }else { 40 dir++; 41 } 42 } 43 } 44 } 45 return a[num]+dir; 46 }
以上是关于找出数组中从未出现的最小正整数java实现的主要内容,如果未能解决你的问题,请参考以下文章
Java中,给一个整数数组,找出其中所有的正整数,并求所有正整数的和
Leetcode练习(Python):数组类:第41题:给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。
41.给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。
2021-07-12:缺失的第一个正数。给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。比如[3,4,5