这题是思维题,需要自己去发现规律
经过研究发现,对于排好序后的{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);
}
}



京公网安备 11010502036488号