美文网首页
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