/* 给你一个整数数组 nums (下标 从 0 开始 计数)以及两个整数:low 和 high ,请返回 漂亮数对 的数目。 漂亮数对 是一个形如 (i, j) 的数对,其中 0 <= i < j < nums.length 且 low <= (nums[i] XOR nums[j]) <= high 。 示例1: 输入:nums = [1,4,2,7], low = 2, high = 6 输出:6 解释:所有漂亮数对 (i, j) 列出如下: - (0, 1): nums[0] XOR nums[1] = 5 - (0, 2): nums[0] XOR nums[2] = 3 - (0, 3): nums[0] XOR nums[3] = 6 - (1, 2): nums[1] XOR nums[2] = 6 - (1, 3): nums[1] XOR nums[3] = 3 - (2, 3): nums[2] XOR nums[3] = 5 */
//本题困难,采用了暴力破解的方式。想要提升效率就需要把计算过的两个数的结果存起来
```
public static int countPairs(int[] nums, int low, int high) { Arrays.sort(nums); int count = 0; for (int i = 0; i < nums.length; i++) { int j = i + 1; while (j > i && j < nums.length) { int t = nums[i] ^ nums[j]; if (low <= t && t <= high) { count++; } j++; } } return count; }