Skip to main content
LeetCode 493, Hard. Topics: Array, Binary Search, Divide and Conquer, Binary Indexed Tree, Segment Tree, Merge Sort, Ordered Set, Treap. View on LeetCode. Generate this problem as a practice environment: tested reference solution, 22 parametrized pytest cases, and a playground notebook:

Problem

Given an integer array nums, return the number of reverse pairs in the array. A reverse pair is a pair (i, j) where:
  • 0 <= i < j < nums.length and
  • nums[i] > 2 * nums[j].

Examples

Explanation: The reverse pairs are: (1, 4) —> nums[1] = 3, nums[4] = 1, 3 > 2 * 1 (3, 4) —> nums[3] = 3, nums[4] = 1, 3 > 2 * 1
Explanation: The reverse pairs are: (1, 4) —> nums[1] = 4, nums[4] = 1, 4 > 2 * 1 (2, 4) —> nums[2] = 3, nums[4] = 1, 3 > 2 * 1 (3, 4) —> nums[3] = 5, nums[4] = 1, 5 > 2 * 1

Constraints

  • 1 <= nums.length <= 5 * 10^4
  • -2^31 <= nums[i] <= 2^31 - 1

Solution

Reference implementation from solution.py on GitHub, full suite in test_solution.py:

Complexity

Tags

Last modified on September 7, 2026