题解 | #数组中的逆序对#

数组中的逆序对

http://www.nowcoder.com/practice/96bd6684e04a44eb80e6a68efc0ec6c5

利用归并排序解题

function feng(data,x,y,sum){
    if(x<y){
        let k = parseInt(JSON.stringify((x+y)/2));
        feng(data,x,k,sum);
        feng(data,k+1,y,sum);
        hebing(data,x,k,y,sum);
    }
}
function hebing(data,x,k,y,sum){//中间值k属于左侧
    let i=x,j=k+1,len=0;
    while(i<=k&&j<=y){
        if(data[i]>data[j]){
            ans+=k-i+1;
            sum[len++]=data[j++];
        } else{
            sum[len++]=data[i++];
        }
    }
    while(i<=k){
        sum[len++]=data[i++];
    }
    while(j<=y){
        sum[len++]=data[j++];
    }
    for(let db=x;db<=y;++db){
        data[db]=sum[db-x];
    }
    ans=ans%1000000007;
}
function InversePairs(data)
{
    // write code here
    let sum = [];
    feng(data,0,data.length-1,sum);
    return ans%1000000007;
}
module.exports = {
    InversePairs : InversePairs
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 14:00
林子大了什么鸟都有啊,我觉得我说的已经很客气了,阴阳谁呢
牛客62656195...:应该不是阴阳吧?你第一次注册的时候boss就说你是牛人
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务