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]
.
Example 1:
Input: nums = [1,3,2,3,1]
Output: 2
Example 2:
Input: nums = [2,4,3,5,1]
Output: 3
Constraints:
-
1 <= nums.length <= 5 * 104
-
-231 <= nums[i] <= 231 - 1
SOLUTION:
import bisect
class Solution:
def reversePairs(self, nums: List[int]) -> int:
n = len(nums)
sortednums = []
ctr = 0
for i in range(n):
k = bisect.bisect_right(sortednums, 2 * nums[i])
ctr += i - k
bisect.insort(sortednums, nums[i])
return ctr
Top comments (0)