题目分析
遇到本题,我们先思考应该如何交换,能否先交换列,然后再交换行?交换列时有什么特征,交换行有什么特征?
这个题目还有一种另外的表达方式,交换两个相邻数,使得数组有序的最少交换次数,两个题目的意思是相同的,都是寻找逆序数的对数。这个题目最早是2020年写的题解,后面随着学习的深入,掌握了一些更高级的数据结构,可以有另外的思路求解本题,对这篇博客进行补充。
又是一个困难题,遇到困难题目,我们先模拟结果。是不是要记录每一个元素出现的次数,然后比较次数是否除了一个数,剩下的均相等?
按照我们的思路,**时间复杂度是O(n^2)**,但是数据量是1e5,因此我们要想一下如何优化。
我们看到困难题,首先要有信心去解决它,要向之前做过的题目靠近。本题特殊的二进制序列,本质上就是括号的匹配问题,合法的括号表达式是怎么样的?是不是左括号和右括号相等,如果将左括号类比1,右括号类比0,是不是每一个前缀码中的1要大于等于0?