# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @return int整型 # class Solution: def InversePairs(self , nums: List[int]) -> int: # write code here def merge_sort(arr, left, right): if left >= right: return 0 mid = (left + right) // 2 count = merge_sort(arr, left, mid) + merge_sort(arr, mid+1, right) count += merge(arr, left, mid, right) return count % 1000000007 def merge(arr, left, mid, right): temp = [] i, j = left, mid+1 count = 0 while i <= mid and j <= right: if arr[i] <= arr[j]: temp.append(arr[i]) i += 1 else: temp.append(arr[j]) count += mid - i + 1 j += 1 temp.extend(arr[i:mid+1]) temp.extend(arr[j:right+1]) arr[left:right+1] = temp return count return merge_sort(nums.copy(), 0, len(nums) -1)