import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { // 情况1:如果1-9每个数字出现的次数一样多,那肯定是yes // 情况2:如果只有几个数字出现的次数一样,其他数字出现次数都不一样,no // 情况3:如果其中几个数字出现n+1次,其他数字出现n次, //比如6和9出现了2次,其他数字都出现了1次,此时只要让6和9在最前面和最后面都 //分别多出现一次即可,即69 1234578 69 //如果6和9出现了n+1次,其他数字出现了n次, // 原理同上:69[1234578 69]1234578 691234578 69123457869 // 情况3:如果其中几个数字出现n+2,n+3,n+4...次,其他数字出现n次,不可能形成数独数组 //即出现次数最多的数字比其他数字出现的次数多出现超过1次,就是no // 结论:如果所有数字出现次数相等,或者出现最多的那些数字只比出现最少的那些数字多出现一次,就是yes,否则就是no。 Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] cnt = new int[10]; for (int i = 0; i < n; i++) { int num = sc.nextInt(); cnt[num]++; } Arrays.sort(cnt); if (cnt[9] - cnt[1] > 1) { System.out.println("NO"); } else { System.out.println("YES"); } } }