Skip to content

Latest commit

 

History

History
39 lines (29 loc) · 898 Bytes

README_CN.md

File metadata and controls

39 lines (29 loc) · 898 Bytes

493. 翻转对

给定一个数组 nums ,如果 i < jnums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对

你需要返回给定数组中的重要翻转对的数量。

示例 1:

输入: nums = [1,3,2,3,1]
输出: 2

示例 2:

输入: nums = [2,4,3,5,1]
输出: 3

注意:

  1. 给定数组的长度不会超过50000
  2. 输入数组中的所有数字都在32位整数的表示范围内。

题解 (Python)

1. 题解

from sortedcontainers import SortedList


class Solution:
    def reversePairs(self, nums: List[int]) -> int:
        sortednums = SortedList()
        ret = 0

        for num in nums:
            ret += len(sortednums) - sortednums.bisect_right(2 * num)
            sortednums.add(num)

        return ret