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

相关推荐

头像
10-27 15:50
门头沟学院 Java
想进开水团喝开水:有一种店 只能外卖 不能堂食 你猜为什么
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务