问题计算反序对
Solution
- 排序,找 2×num[i]+1的下标
import bisect
class Solution(object):
def reversePairs(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if len(nums)==0:
return 0
sortedlist = [nums[0]]
k = 0
count = 0
for j in range(1,len(nums)):
le = len(sortedlist)
## 找得到就返回x的左侧位置,找不到就返回x应该插入的位置
k = bisect.bisect_left(sortedlist,2*nums[j]+1)
## 用总长度,减去k得到,大于或等于 2*nums[i]+1 的总个数
count=count+le-k
bisect.insort_right(sortedlist,nums[j])
print(k)
return count```