16-12-01(中间数)

中位数+判断

import java.util.*;
public class csp_16_12_01 {
    
    
public static void main(String[] args) {
    
    
	Scanner in = new Scanner(System.in);
	int n = in.nextInt();
	int flag = -1;
	int [] a = new int[n];
	for(int i =0;i<n;i++) {
    
    
		a[i] = in.nextInt();
	}
	Arrays.sort(a);
	//奇数个
	if(n%2!=0) {
    
    
	int t = a[n/2];
	int max = 0,min=0;
	for(int i =0;i<n;i++) {
    
    
		if(a[i] < t) {
    
    
			min++;
		}
		if(a[i] > t) {
    
    
			max++;
		}
	}
	if(max == min) flag = t;
	}
	//偶数个
	if(n%2 == 0) {
    
    
		int x = a[n/2];
		int y = a[n/2-1];
		//x 与 y不相等时flag返回-1
		if(x == y) {
    
    
			int max = 0,min=0;
			for(int i =0;i<n;i++) {
    
    
				if(a[i] < x) {
    
    
					min++;
				}
				if(a[i] > x) {
    
    
					max++;
				}
			}
			if(max == min) flag = x;
		}
	}
	System.out.print(flag);
}
}

猜你喜欢

转载自blog.csdn.net/qq_51985653/article/details/121457117