Advertisement

Python:反序对

阅读量:

牛客网上的剑指 offer的在线编程:

题目描述

在数组中任意两个数a[i]与a[j](i<j),若满足a[i]>a[j]则它们构成逆序对。给定一个序列S={s₁,s₂,…,sₙ}(n≥2),要求计算该序列中所有逆序对的数量,并将结果记为P值。然后计算P并对1e9+7取模得到结果,并最终输出上述计算的结果。

这道题目在牛客网上以Python为工具实现的代码相当有挑战性,并不容易在短时间内(例如1秒)完成;因此它无法通过测试用例。

方法一复制了牛客网用户 顧左 的答案

复制代码
 # -*- coding:utf-8 -*-

    
 import time
    
 '''
    
 数组中的逆序对
    
 题目描述
    
 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。
    
 输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007
    
 '''
    
 # 方法一:用归并排序思想
    
 count = 0
    
 class Solution:
    
     def InversePairs(self, data):

全部评论 (0)

还没有任何评论哟~