class Solution(object):
def reversePairs(self, nums):
n = len(nums)
cnt = 0
for i in range(n):
for j in range(i + 1, n):
if nums[i] > 2 * nums[j]:
cnt += 1
return cnt
l = r = 0
while l < len(left) and r < len(right):
if left[l] <= 2 * right[r]:
l += 1
else:
self.cnt += len(left) - l
r += 1
class Solution(object):
def reversePairs(self, nums):
self.cnt = 0
def mergeSort(lst):
L = len(lst)
if L <= 1:
return lst
return mergeTwo(mergeSort(lst[:L//2]), mergeSort(lst[L//2:]))
def mergeTwo(left, right):
l = r = 0
while l < len(left) and r < len(right):
if left[l] <= 2 * right[r]:
l += 1
else:
self.cnt += len(left) - l
r += 1
return sorted(left+right)
mergeSort(nums)
return self.cnt