题目描述:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述: 题目保证输入的数组中没有的相同的数字

i c } m l p a o s r s f } f } t u u F n n F o c c o r v r i } v l l l v v v v w } w } w } i w } r u 3 i a e p f a e e e a a a a h h h n h e n 6 n r t r r t t t r r r r i i i d i t d S v u o s l l l e l u a o e n r c t r c m l r p q i c e i } } e c i p e c i q x e n i r t l r n e a e o i e i n o f e o n o n u n n i u s = s r t p d f g = = d u p l p p d - q p d - = i m d o t e p s t u y t h e n n s y e = y e = n s e l n i P n r ( r = t m e x t > u c c i p e c i q > [ x > [ x s d [ x e o a u o _ > n = = i n = m o o n o n = i 1 = i 1 t e i f n i m c = ( = d d = = s p u d - { p d - n - n - a x n + t r s e n 0 A s p s [ y n e = y e = s d = m d = r d = { s s u e r t r p e 0 t p [ t x [ x t e i e t < e + ( s m n r a o r / n a ] i 1 i 1 a x 1 d x 1 = x 1 _ ( s d a r c o d r n + - n - r ] ] ] r & : y t e c t > d = = d = t + e i n n { ( s e e e = = n = g u , i n + s s / & n x q 1 x 1 { 1 d h m n u ( s & u ] ] n n c t s 0 o m e & ( m - u { u { o : , u s n n & q s = = m m p + t ) d u n [ m s s y [ n ) m u > q n i n [ [ [ c I . [ s m = ] u d u p q i o n c I / , s m m ] ] n u t o n , m { s s d n ] u t 2 s i [ [ e t ) n ] t m d p q x t , a i + ] ] ] _ r d 1 - t + s , 1 { I 1 t , n ) a m t r i e t d n { : ) d ) I n t , _ e n d : I n t ) I n t {

算法思想:很容易想到的方法就是遍历每一个元素,让其与后面的元素对比,如果大于则count++,但是这样的时间复杂度是O(n2),因此,我们可以用归并排序思路。

github地址:https://github.com/cubegao/LeetCode