题目来源:数组中的逆序对_牛客题霸_牛客网
描述
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P mod 1000000007
数据范围: 对于 50\%50% 的数据, size\leq 10^4size≤104
对于 100\%100% 的数据, size\leq 10^5size≤105
数组中所有数字的值满足 0≤val≤1000000
要求:空间复杂度O(n),时间复杂度O(nlogn)
输入描述:
题目保证输入的数组中没有的相同的数字
示例1
输入:[1,2,3,4,5,6,7,0]
复制返回值:7
我的代码:
代码采用归并排序的方式,当left数列的值小于right时,直接压入有序数组,当left数列的值大于right时,说明left后面的数据也都大于这个right,这个right插入有序数组后,加上的逆序对数维left后面值的个数。
class Solution {
private:
const int kmod = 100