题目描述
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007
样例
输入
1,2,3,4,5,6,7,0
输出
7
想法一:
第一眼肯定想到两重循环的方法,这个比较简单就不写了
那就说一种方法
就是先将列表从小到大排序,然后依次循环,每次都取到列表里最小的数,所以该数之前都是比它大的数字,所以累加每个索引即可(索引从0开始),每次加完之后要从原列表中pop该数.不过用python这样写会超时
class Solution1:
def InversePairs(self, data):
Sortdata = self.quick_sort(data)
res = 0
for i in Sortdata:
res += data.index(i)
data.pop(data.index(i))
return res
# 使用的快排
def quick_sort(self, data):
if len(data) < 2: