/** * 输入整数n * 第一个数组:n个整数,不重复 [0-n] * 第二个数组:n个整数,不重复 [0-n] * 第一个数组中的2个数在第二个数组中相对顺序颠倒1情况的个数 * * 例: * 输入: * 7 * 0 1 3 4 5 6 2 * 0 3 1 6 4 5 2 * 输出: * 3 * * 分析: * (1,3)、(4,6)、(5,6)的顺序在第二个数组中颠倒 */import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 输入 int num = sc.nextInt(); Mapmap1 = new HashMap (); for (int i = 0; i < num; i++) { map1.put(i, sc.nextInt()); } Map map2 = new HashMap (); for (int i = 0; i < num; i++) { map2.put(sc.nextInt(), i); } int result = 0; // 从第一个数组选出2个数处理 for (int i = 0; i < num; i++) { for (int j = i+1; j < num; j++) { Integer m = map1.get(i); Integer n = map1.get(j); if(-1 == map2.get(m) || -1 == map2.get(n)){ continue; } // m所在数组下标大于n所在数组下标,为T特征 if(map2.get(m) > map2.get(n)){ result++; System.err.println(m+"/"+n); } } } System.out.println(result); }}