这题是思维题,需要自己去发现规律

经过研究发现,对于排好序后的{0,p1,p2,p3}

需要p3-(k-1)次,这是一般规律

除此之外,我们还需特判两种情况,一种是原数组原本就是每个数都相同的

还有一种就是原数组中没有0,mex只能取0,使得永远无法变化成相同的



import java.util.Arrays;
import java.util.Scanner;
import java.util.TreeSet;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
//		这题是思维题,需要自己去发现规律
//		经过研究发现,对于{0,p1,p2,p3}
//		需要p3-(k-1)次
		Scanner scanner=new Scanner(System.in);
		int n=scanner.nextInt();
		long a[]=new long[n];
		TreeSet<Long> set=new TreeSet<>();
		for (int i = 0; i < a.length; i++) {
			a[i]=scanner.nextLong();
			set.add(a[i]);
		}
		long b[]=new long[set.size()];
        if(set.size()==1) {
			System.out.println(0);
			return;
		}
		if(!set.contains(0L)) {
			System.out.println(-1);
			return;
		}
		long len=set.size();
		for (int i = 0; i < len; i++) {
			b[i]=set.pollFirst();
		}
		Arrays.sort(b);
		long t=b[b.length-1]-(b.length-2);
		System.out.println(t);
		
		
		

	}

}