题解 | #数组中的逆序对#

数组中的逆序对

http://www.nowcoder.com/practice/96bd6684e04a44eb80e6a68efc0ec6c5

# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param data int整型一维数组 
# @return int整型
#
class Solution:
    def InversePairs(self , data: List[int]) -> int:
        # write code here
        def mergeSort(L,R):
            if L>=R:
                return 0
            m=L+(R-L)//2
            cnt=mergeSort(L,m)+mergeSort(m+1,R)
            i,j=L,m+1
            pos=L
            while i<=m and j<=R:
                if data[i] <= data[j]:
                    tmp[pos]=data[i]
                    i+=1
                else:
                    tmp[pos]=data[j]
                    j+=1
                    cnt+=(m-i+1)
                pos+=1
            for k in range(i,m+1):
                tmp[pos]=data[k]
                pos+=1
            for k in range(j,R+1):
                tmp[pos]=data[k]
                pos+=1
            data[L:R+1]=tmp[L:R+1]
            return cnt
        n=len(data)
        tmp=[0]*n
        res=mergeSort(0,n-1)
        return res%1000000007
全部评论

相关推荐

10-24 13:36
门头沟学院 Java
Zzzzoooo:更新:今天下午有hr联系我去不去客户端,拒了
点赞 评论 收藏
分享
11-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务