美文网首页
2019-08-17剑指 数组中的逆序对

2019-08-17剑指 数组中的逆序对

作者: mztkenan | 来源:发表于2019-08-17 17:57 被阅读0次

33min,用sublime写的java,很多语法错误。
1.length属性
2.int []

public class Solution {
    static int cnt=0;

    public int InversePairs(int [] array) {
        int[] tmp=new int[array.length];
        mergesort(array,0,array.length-1,tmp);
        return cnt;
    }

    public void mergesort(int [] array,int left,int right,int []tmp){
        if(right==left) return;  #递归忘记递归条件了
        int mid=(left+right)>>1;
        mergesort(array,left,mid,tmp);
        mergesort(array,mid+1,right,tmp);
        int p=left,q=mid+1,i=left;
        while(p<=mid||q<=right){
            if(q>right||(p<=mid &&array[p]<=array[q])) tmp[i++]=array[p++];
            else {
                cnt+=mid-p+1;
                cnt%=1000000007;
                tmp[i++]=array[q++];
            }
        }
        for(int j=left;j<=right;j++) array[j]=tmp[j];
    }
}

注意要点:
1.归并那里的条件很简洁,是很重要的点
2.逆序对的计算用一行就可以解决了,真的出其不意

相关文章

网友评论

      本文标题:2019-08-17剑指 数组中的逆序对

      本文链接:https://www.haomeiwen.com/subject/gdlksctx.html