class Solution:
def InversePairs(self, data):
count = 0
if not data:
return 0
for i in range(len(data)):
count += data.index(min(data))
data.remove(data.index(min(data)))
return count%1000000007
但是牛客网不通过,以下采用归并方法
class Solution:
def __init__(self):
self.count =0
def InversePairs(self, data):
def MergeSort(arr):
if len(arr)<=1:
return arr
length = int(len(arr)//2)
left = MergeSort(arr[:length])
right = MergeSort(arr[length:])
i = 0
j = 0
res = []
while i<len(left) and j<len(left):
if left[i]<right[j]:
res.append(left[i])
i+=1
else:
res.append(right[j])
j+=1
self.count += len(left)-i
res += left[i:]
res += right[j:]
return res
MergeSort(data)
return self.count%1000000007