首页 > 代码库 > 找出数组中从未出现的最小正整数java实现
找出数组中从未出现的最小正整数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实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。