我写的很麻烦,大致思路是先排序个新数组,再把原数组拆成奇偶数组,然后逐个比较原数组和新数组(排序)每个数。如果数字一样就跳过,不一样就在原数组上做swap(交卷新数组对应的数),同时交换次数+1,这样遍历一遍后就是最优交换数了。麻烦的点在于数组可能有重复数字,所以我是建了堆map映射每个数字到其所有位置(list),然后swap后就根据map从list里删除更新。ps这题相当于今天网易第一题的复杂版(也有些区别)。