解法一

题目没有限制翻转的次数,那其实可以每次翻转长度为2的子数组,相当于两两交换的效果。联想到冒泡排序,经过有限次两两交换,可以得到一个有序数组。因此只需要判断两个数组所包含的元素是否相同即可。可以将两个数组进行排序,然后再比较。

  1. import java.util.Arrays;
  2. class Solution {
  3. public boolean canBeEqual(int[] target, int[] arr) {
  4. Arrays.sort(target);
  5. Arrays.sort(arr);
  6. return Arrays.equals(target, arr);
  7. }
  8. }

题解里看到有人用异或的方法来判断,一开始感觉有道理,刚想写,想到一个[[0, 0], [1, 1]]的反例,所以应该是不行的。