参考代码:
package com.cfl;
import java.util.*;
public class Test {
static List<Integer> counts = new ArrayList<>();
static List<List<Integer>> arrList = new ArrayList<>();
static int[] a;
static int[] b;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String A = input.nextLine();
String B = input.nextLine();
String[] aSplit = A.split(" ");
String[] bSplit = B.split(" ");
a = new int[aSplit.length];
b = new int[bSplit.length];
for (int i = 0; i < aSplit.length; i++) {
a[i] = Integer.parseInt(aSplit[i]);
b[i] = Integer.parseInt(bSplit[i]);
}
int[] sort = bubbling(a);
permute(sort,0,sort.length-1);
List<Integer> integers = arrList.get(arrList.size() - 1);
int sum =0;
for (Integer integer : integers) {
if(integer == integers.get(integers.size()-1)){
sum++;
}
}
System.out.println(sum);
}
public static int[] bubbling(int[] arr){
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length - 1-i; j++) {
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
public static void permute(int[] arr,int start,int end){
if(start == end){
int count = 0;
for (int i = 0; i < arr.length; i++) {
if(arr[i]>b[i]){
count++;
}
}
counts.add(count);
Collections.sort(counts);
arrList.add(counts);
}else{
for (int i = start; i <= end; i++) {
swap(arr,start,i);
permute(arr,start+1,end);
swap(arr,start,i);
}
}
}
public static void swap(int[] arr,int i, int j){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}