题目描述:
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。即输出P%1000000007
思路分析:
这道题的解法十分巧妙,我们熟悉的数组排序中的归并排序,它在排序的过程中就是比较两个数的大小,如果是逆序它就交换,所以我们想求一个数组中的逆序对,就对他进行归并排序,在排序的过程中记录逆序对数。
代码:
public class Solution { int res; public int InversePairs(int [] array) { if(array==null||array.length==0) return 0; sort(array,0,array.length-1); return res%1000000007; } public void sort(int[]array,int start,int end){ //归并排序 int mid=(start+end)/2; if(start