输入第一行为一个数字N,表示数组A和B的长度。输入第2行和3行都是N个数字,分别表示数组A和B的元素
修改B中的一个元素,并打印最大的最佳配对集合数量。注意:必须修改B中的一个元素。
4 1 2 3 4 1 2 3 3
4
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ int n = Integer.valueOf(sc.nextLine()); String[] strs1 = sc.nextLine().split(" "); String[] strs2 = sc.nextLine().split(" "); int[] num1 = new int[n]; int[] num2 = new int[n]; for(int i =0;i<n;i++){ num1[i] = Integer.valueOf(strs1[i]); num2[i] = Integer.valueOf(strs2[i]); } int num = 0; int total = 0; Map<Integer,Integer> map = new HashMap<>(); for(int i=0;i<n;i++){ for(int j =0;j<n;j++){ if(num1[i]==num2[j] && !map.containsKey(num1[i])){ num++; map.put(num1[i],1); } } } for(int i=0;i<n;i++){ if(!map.containsKey(num1[i]) && num<n) { num++; } if(map.containsKey(num1[i])){ total++; } } if(total==n)num--; System.out.println(num); } } }