public class Main { static int N = 100010; static long[] a = new long[N]; static long[] b = new long[N];// 差分数组 static int n; public static void main(String[] args) throws IOException { boolean flag = true;// 判断全部的元素是不是相同 n = nextint(); for (int i = 1; i <= n; i++) { a[i] = nextlong(); if (i >= 2 && a[i] != a[i - 1]) { flag = false; } } if (flag) { println(0); } else { Arrays.sort(a, 1, n + 1); for (int i = 1; i <= n; i++) {// 差分数组构建 b[i - 1] = a[i] - a[i - 1]; } long ans = 0; // 判断第一个元素是不是0 if (a[1] != 0) { println(-1); } else { for (int i = 0; i < n; i++) { if (b[i] == 0) { continue; } if (b[i] == 1) { ans++; go(i); continue; } // b[i]不等于1,0的情况 ans += (b[i] - 1); b[i] = 1; i--; } println(ans); } } flush(); }
点赞 3

相关推荐

牛客网
牛客企业服务