text: '''
  给定一个数组 nums ，如果 i < j 且 nums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。
  
  你需要返回给定数组中的重要翻转对的数量。
  
  示例 1:
  
  输入: [1,3,2,3,1]
  输出: 2
  示例 2:
  
  输入: [2,4,3,5,1]
  输出: 3
  注意:
  
  给定数组的长度不会超过50000。
  输入数组中的所有数字都在32位整数的表示范围内。
  
  来源：力扣（LeetCode）
  链接：https://leetcode-cn.com/problems/reverse-pairs
  '''
  class Solution:
      def reversePairs(self, nums: List[int]) -> int:
          tb, res = [], 0
          for n in reversed(nums) :
              res += bisect.bisect_left(tb, n)
              n2 = 2*n
              idx = bisect.bisect_left(tb, n2)
              tb.insert(idx, n2)
          return res
  
  